Subject: Re: [PATCH] d80211: make sleeping in hw->config possible

From: Michael Buesch <[email-masked]>
Date: Mon, 10 Jul 2006 01:04:52 +0200

On Sunday 09 July 2006 20:47, you wrote:
> ===================================================================
> --- wireless-dev-dscapeports.orig/net/d80211/ieee80211.c	2006-06-17 21:26:10.000000000 +0200
> +++ wireless-dev-dscapeports/net/d80211/ieee80211.c	2006-07-09 20:01:42.000000000 +0200
> @@ -4327,8 +4327,7 @@
>  		del_timer_sync(&local->rate_limit_timer);
>  	if (local->stat_time)
>  		del_timer_sync(&local->stat_timer);
> -	if (local->scan_timer.data)
> -		del_timer_sync(&local->scan_timer);
> +	cancel_rearming_delayed_work(&local->scan_work);
>  	ieee80211_rx_bss_list_deinit(dev);
>  
>  	rtnl_lock();

There seems to be a problem. It sometimes loops inside of
cancel_rearming_delayed_work forever. So I tried to fix it like this:
	if (local->scan_work.data)
		cancel_rearming_delayed_work(&local->scan_work);
This fixes the case where we don't scan (have no STA), so don't
initialize the work struct.

But it still loops infinite, sometimes.
Any suggestions?

-- 
Greetings Michael.