Subject: Re: RFR: new SiS gige driver

From: Ben Greear <[email-masked]>
Date: Sat, 09 Aug 2003 11:10:45 -0700

Jeff Garzik wrote:
> Andi Kleen wrote:
> 
>> * netif_stop_queue in hard_start_xmit is not protected against the 
>> interrupt by the spinlock. That's racy, isn't it?
> 
> 
> Shouldn't be, if done right.  If the interrupt runs a TX completion 
> cycle, it will run the code
>     if (work_done && netif_queue_stopped(dev))
>         netif_wake_queue(dev)
> 

> Since ->hard_start_xmit is guaranteed never to be called if the queue is 
> stopped, you also guaranteed that netif_wake_queue and ->hard_start_xmit 
> are mutually exclusive.

Is this really guaranteed?  What if the queue is stopped between the check
to see if it's stopped and the call to hard_start_xmit?

Ben

-- 
Ben Greear <[email-masked]>
Candela Technologies Inc  http://www.candelatech.com