[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20060823213642.GG4401@austin.ibm.com>
Date: Wed, 23 Aug 2006 16:36:42 -0500
From: linas@...tin.ibm.com (Linas Vepstas)
To: Arnd Bergmann <arnd@...db.de>
Cc: Benjamin Herrenschmidt <benh@...nel.crashing.org>,
netdev@...r.kernel.org, James K Lewis <jklewis@...ibm.com>,
linux-kernel@...r.kernel.org, linuxppc-dev@...abs.org
Subject: Re: [PATCH 2/6]: powerpc/cell spidernet low watermark patch.
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@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists