[PATCH 2/6]: powerpc/cell spidernet low watermark patch.

Linas Vepstas linas at austin.ibm.com
Thu Aug 24 07:36:42 EST 2006


On Sun, Aug 20, 2006 at 12:03:14PM +0200, Arnd Bergmann wrote:
> On Sunday 20 August 2006 08:31, Benjamin Herrenschmidt wrote:
> > > card->low_watermark->next->dmac_cmd_status |= SPIDER_NET_DESCR_TXDESFLG;
> > > mb();
> > > card->low_watermark->dmac_cmd_status &= ~SPIDER_NET_DESCR_TXDESFLG;
> > > card->low_watermark = card->low_watermark->next;
> > > 
> > > when we queue another frame for TX.
> > 
> > I would have expected those to be racy vs. the hardware... what if the
> > hardware is updating dmac_cmd_status just as your are trying to and the
> > bit out of it ?
> 
> Right, that doesn't work. It is the only bit we use in that byte though,
> so maybe it can be done with a single byte write.

Thanks, you're right, I missed that.  I'll change this to byte access 
shortly.  Any recommendations for style/api for byte access? 

I could create a searate patch to change struct descr {} to split 
the u32 into several u8's; there's a dozen spots that get touched.

Alternatel, I could do a cheesy cast to char[4] and access that way.
Opinions?

--linas



More information about the Linuxppc-dev mailing list