Subject: Re: RFC/T: Trial fix for the bcm43xx - wpa_supplicant - NetworkManager deadlock

From: Larry Finger <[email-masked]>
Date: Tue, 21 Nov 2006 10:30:59 -0600

Michael Buesch wrote:
> On Tuesday 21 November 2006 09:49, Johannes Berg wrote:
>> On Tue, 2006-11-21 at 00:17 +0100, Michael Buesch wrote:
>>
>>> So, how to fix this?
>>> Actually, do we even _have_ to disable TX when scanning? I'd say no.
>>> Opinions?
>> For active scanning we can't disable TX. And for passive scanning the
>> firmware will block unwanted frames from going out on the wrong
>> channel :)
> 
> 
> Ok, so people, please do test this patch.
> I did not test it myself, but I am pretty sure it will fix
> a lot of mysterious and unobvious bugs people are seeing.

I put the equivalent into my system about 12 hours ago and have not seen any problems.

Larry

> 
> Signed-off-by: Michael Buesch <[email-masked]>
> 
> Index: wireless-2.6/net/ieee80211/softmac/ieee80211softmac_scan.c
> ===================================================================
> --- wireless-2.6.orig/net/ieee80211/softmac/ieee80211softmac_scan.c	2006-09-27 19:34:20.000000000 +0200
> +++ wireless-2.6/net/ieee80211/softmac/ieee80211softmac_scan.c	2006-11-21 09:57:14.000000000 +0100
> @@ -47,7 +47,6 @@ ieee80211softmac_start_scan(struct ieee8
>  	sm->scanning = 1;
>  	spin_unlock_irqrestore(&sm->lock, flags);
>  
> -	netif_tx_disable(sm->ieee->dev);
>  	ret = sm->start_scan(sm->dev);
>  	if (ret) {
>  		spin_lock_irqsave(&sm->lock, flags);
> @@ -248,7 +247,6 @@ void ieee80211softmac_scan_finished(stru
>  		if (net)
>  			sm->set_channel(sm->dev, net->channel);
>  	}
> -	netif_wake_queue(sm->ieee->dev);
>  	ieee80211softmac_call_events(sm, IEEE80211SOFTMAC_EVENT_SCAN_FINISHED, NULL);
>  }
>  EXPORT_SYMBOL_GPL(ieee80211softmac_scan_finished);
> 
>