Search Linux Wireless

Re: [PATCH v3 2/2] nl80211: Stop scheduled scan if netlink client disappears

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2014-11-12 at 14:08 +0200, Jukka Rissanen wrote:

> @@ -850,8 +852,10 @@ void __cfg80211_leave(struct cfg80211_registered_device *rdev,
>  		break;
>  	case NL80211_IFTYPE_P2P_CLIENT:
>  	case NL80211_IFTYPE_STATION:
> -		if (rdev->sched_scan_req && dev == rdev->sched_scan_req->dev)
> +		if (sched_scan_req && dev == sched_scan_req->dev) {
> +			cancel_work_sync(&sched_scan_req->sched_scan_stop_wk);
>  			__cfg80211_stop_sched_scan(rdev, false);
> +		}
>  
>  #ifdef CONFIG_CFG80211_WEXT
>  		kfree(wdev->wext.ie);
> @@ -991,6 +995,10 @@ static int cfg80211_netdev_notifier_call(struct notifier_block *nb,
>  
>  		if (WARN_ON(rdev->sched_scan_req &&
>  			    rdev->sched_scan_req->dev == wdev->netdev)) {
> +			struct cfg80211_sched_scan_request *sched_scan_req =
> +				rdev->sched_scan_req;
> +
> +			cancel_work_sync(&sched_scan_req->sched_scan_stop_wk);
>  			__cfg80211_stop_sched_scan(rdev, false);
>  		}
>  

This can cause deadlocks as it's done with the RTNL held, yet the work
acquires the RTNL.

johannes

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux