cfg80211: stop sched scan only when needed
cfg80211_leave stops sched scan when any station vif is leaving. Add an explicit check and call it only when the relevant vif (the one we scan on) is leaving. Signed-off-by: Barak Bercovitz <barak@wizery.com> [Eliad - changed the commit message a bit] Signed-off-by: Eliad Peller <eliad@wizery.com> [Johannes - add ASSERT_RTNL since that protects the pointer] Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
d1e33e654e
commit
24d584d70e
|
@ -756,13 +756,16 @@ void cfg80211_leave(struct cfg80211_registered_device *rdev,
|
||||||
{
|
{
|
||||||
struct net_device *dev = wdev->netdev;
|
struct net_device *dev = wdev->netdev;
|
||||||
|
|
||||||
|
ASSERT_RTNL();
|
||||||
|
|
||||||
switch (wdev->iftype) {
|
switch (wdev->iftype) {
|
||||||
case NL80211_IFTYPE_ADHOC:
|
case NL80211_IFTYPE_ADHOC:
|
||||||
cfg80211_leave_ibss(rdev, dev, true);
|
cfg80211_leave_ibss(rdev, dev, true);
|
||||||
break;
|
break;
|
||||||
case NL80211_IFTYPE_P2P_CLIENT:
|
case NL80211_IFTYPE_P2P_CLIENT:
|
||||||
case NL80211_IFTYPE_STATION:
|
case NL80211_IFTYPE_STATION:
|
||||||
__cfg80211_stop_sched_scan(rdev, false);
|
if (rdev->sched_scan_req && dev == rdev->sched_scan_req->dev)
|
||||||
|
__cfg80211_stop_sched_scan(rdev, false);
|
||||||
|
|
||||||
wdev_lock(wdev);
|
wdev_lock(wdev);
|
||||||
#ifdef CONFIG_CFG80211_WEXT
|
#ifdef CONFIG_CFG80211_WEXT
|
||||||
|
|
Loading…
Reference in New Issue