Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 24d584d7 authored by Barak Bercovitz's avatar Barak Bercovitz Committed by Johannes Berg
Browse files

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: default avatarBarak Bercovitz <barak@wizery.com>
[Eliad - changed the commit message a bit]
Signed-off-by: default avatarEliad Peller <eliad@wizery.com>
[Johannes - add ASSERT_RTNL since that protects the pointer]
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent d1e33e65
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -756,12 +756,15 @@ void cfg80211_leave(struct cfg80211_registered_device *rdev,
{
	struct net_device *dev = wdev->netdev;

	ASSERT_RTNL();

	switch (wdev->iftype) {
	case NL80211_IFTYPE_ADHOC:
		cfg80211_leave_ibss(rdev, dev, true);
		break;
	case NL80211_IFTYPE_P2P_CLIENT:
	case NL80211_IFTYPE_STATION:
		if (rdev->sched_scan_req && dev == rdev->sched_scan_req->dev)
			__cfg80211_stop_sched_scan(rdev, false);

		wdev_lock(wdev);