I assert that with lockless transmit (ie NETIF_F_LLTX) it is possible
for two cpu's to race with the transmit flow control 
(netif_stop_queue/netif_wake_queue).
I see it with sky2, and probably could reproduce with tg3 as well.

A. CPU is in middle of building up a transmit,
                                        B. CPU gets packet and passes 
netif_queue_stopped test
A. CPU completes transmit and since tx queue is full sets stopped
                                        B. tests for tx queue full and....

This will cause the driver to return DEVICE_BUSY
Tg3, skge, sky2 and rionet all print message, that this is a BUG!
but it is just losing a corner case race, and should be silent.

-- 
Stephen Hemminger <[EMAIL PROTECTED]>
OSDL http://developer.osdl.org/~shemminger
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to