Subject: Re: [PATCH] [e1000]: Remove unnecessary tx_lock

From: "Michael Chan" <[email-masked]>
Date: Thu, 03 Aug 2006 17:09:57 -0700

On Thu, 2006-08-03 at 18:08 -0400, jamal wrote:

> 
> Yes in your case you need to hold the lock but not in the e1000 case.
> I dont understand though why you need to check for wake in the tx path.
> 

tg3_start_xmit()

	if (tx_ring_empty)
				<-  tg3_tx()
		netif_stop_queue()

At the arrow, tg3_tx() can come in and clean up the entire ring but will
not see that the queue is stopped and therefore will not call
netif_wake_queue().  As a result, the tx_queue is stopped forever.