Messages in this thread |  | | Date | Wed, 23 Aug 2006 16:36:42 -0500 | | Subject | Re: [PATCH 2/6]: powerpc/cell spidernet low watermark patch. | | From | (Linas Vepstas) |
| |
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 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |