[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