On 19 Dec 2004 14:31:15 -0500, jamal <hadi@xxxxxxxxxx> wrote:
> On Sat, 2004-12-18 at 00:44, David S. Miller wrote:
>
> > Perhaps one way to fix this is to add a pointer to a spinlock to
> > the netdev struct, and have hold that the upper level grab that
> > when NETIF_F_LLTX when doing queue state checks. Actually, that
> > could end up being racy too.
>
> How about releasing the qlock only when the LLTX transmit lock is
> grabbed? That should bring it to par with what it was originally.
I dont like the idea of releasing inside the driver a lock taken
outside. That might be just me...
Instead, I would suggest to have LLTX drivers check whether queue is
stopped after they grab their private tx lock and before they check tx
ring fullness. That way we close the race window but keep the driver
bug check around.
See attached sungem patch.
--
Eric