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

Commit 71228a1e authored by Alexander Bondar's avatar Alexander Bondar Committed by Johannes Berg
Browse files

mac80211: release sched_scan_sdata when stopping sched scan



Assuming sched_scan_stop operation is synchronous the driver may not
necessary call ieee80211_sched_scan_stopped_work. Since this work is
the only place where sched_scan_sdata is released we can possibly run
into situation when it is never released. Fix this by releasing it
just after calling drv_sched_scan_stop.

Signed-off-by: default avatarAlexander Bondar <alexander.bondar@intel.com>
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 112c44b2
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -1055,9 +1055,11 @@ int ieee80211_request_sched_scan_stop(struct ieee80211_sub_if_data *sdata)
	/* We don't want to restart sched scan anymore. */
	local->sched_scan_req = NULL;

	if (rcu_access_pointer(local->sched_scan_sdata))
	if (rcu_access_pointer(local->sched_scan_sdata)) {
		ret = drv_sched_scan_stop(local, sdata);

		if (!ret)
			rcu_assign_pointer(local->sched_scan_sdata, NULL);
	}
out:
	mutex_unlock(&local->mtx);