[Cbe-oss-dev] [PATCH 3/3] spufs context switch - fix interrupt routing
Luke Browning
lukebr at linux.vnet.ibm.com
Tue Apr 22 07:09:56 EST 2008
On Thu, 2008-04-17 at 17:52 +1000, Jeremy Kerr wrote:
> Luke,
>
> > Index: public_git/arch/powerpc/platforms/cell/spufs/switch.c
> > ===================================================================
> > --- public_git.orig/arch/powerpc/platforms/cell/spufs/switch.c
> > +++ public_git/arch/powerpc/platforms/cell/spufs/switch.c
> > @@ -762,6 +762,7 @@ static inline void enable_interrupts(str
> > spu_int_mask_set(spu, 0, 0ul);
> > spu_int_mask_set(spu, 1, class1_mask);
> > spu_int_mask_set(spu, 2, 0ul);
> > + eieio();
> > spin_unlock_irq(&spu->register_lock);
> > }
>
> do we need the eieio() here? I would have thought that the spin_unlock
> provides sufficient ordering.
>
Depends on whether spin_unlock_irq() includes a lwsync or a sync. If
sync, the eieio is not needed. Otherwise it is. I recall seeing other
places in this code where we had eieio following by the unlock.
Luke
More information about the cbe-oss-dev
mailing list