Subject: Re: netdev tx timeouts

From: Larry Finger <[email-masked]>
Date: Wed, 13 Sep 2006 08:25:37 -0500

Michael Buesch wrote:
> On Wednesday 13 September 2006 04:25, Larry Finger wrote:
>> Michael,
>>
>> I still have not gotten a network guru to answer any questions about 
>> synchronize_net, but I have been testing the patch below:
> 
> I'd say this is racy.
> Did you test this on SMP?

No - I don't have the hardware.
> 
>> Index: wireless-2.6/drivers/net/wireless/bcm43xx/bcm43xx_main.c
>> ===================================================================
>> --- wireless-2.6.orig/drivers/net/wireless/bcm43xx/bcm43xx_main.c
>> +++ wireless-2.6/drivers/net/wireless/bcm43xx/bcm43xx_main.c
>> @@ -3169,8 +3169,8 @@ static void bcm43xx_periodic_work_handle
>>   		 * be preemtible.
>>   		 */
>>   		mutex_lock(&bcm->mutex);
>> -		netif_stop_queue(bcm->net_dev);
>>   		synchronize_net();
> 
> A TX handler starts on another CPU.
> 
>> +		netif_stop_queue(bcm->net_dev);
> 
> It's still running... boom.
> 

I see your point, but the current way breaks a UP system! What to do?

Larry