Commit 792e6aa7 authored by Eliad Peller's avatar Eliad Peller Committed by Johannes Berg

cfg80211: add cfg80211_sched_scan_stopped_rtnl

Add locked-version for cfg80211_sched_scan_stopped.
This is used for some users that might want to
call it when rtnl is already locked.

Fixes: d43c6b6e ("mac80211: reschedule sched scan after HW restart")
Cc: stable@vger.kernel.org (3.14+)
Signed-off-by: default avatarEliad Peller <eliadx.peller@intel.com>
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent c1fbb258
...@@ -3668,6 +3668,18 @@ void cfg80211_sched_scan_results(struct wiphy *wiphy); ...@@ -3668,6 +3668,18 @@ void cfg80211_sched_scan_results(struct wiphy *wiphy);
*/ */
void cfg80211_sched_scan_stopped(struct wiphy *wiphy); void cfg80211_sched_scan_stopped(struct wiphy *wiphy);
/**
* cfg80211_sched_scan_stopped_rtnl - notify that the scheduled scan has stopped
*
* @wiphy: the wiphy on which the scheduled scan stopped
*
* The driver can call this function to inform cfg80211 that the
* scheduled scan had to be stopped, for whatever reason. The driver
* is then called back via the sched_scan_stop operation when done.
* This function should be called with rtnl locked.
*/
void cfg80211_sched_scan_stopped_rtnl(struct wiphy *wiphy);
/** /**
* cfg80211_inform_bss_width_frame - inform cfg80211 of a received BSS frame * cfg80211_inform_bss_width_frame - inform cfg80211 of a received BSS frame
* *
......
...@@ -284,14 +284,22 @@ void cfg80211_sched_scan_results(struct wiphy *wiphy) ...@@ -284,14 +284,22 @@ void cfg80211_sched_scan_results(struct wiphy *wiphy)
} }
EXPORT_SYMBOL(cfg80211_sched_scan_results); EXPORT_SYMBOL(cfg80211_sched_scan_results);
void cfg80211_sched_scan_stopped(struct wiphy *wiphy) void cfg80211_sched_scan_stopped_rtnl(struct wiphy *wiphy)
{ {
struct cfg80211_registered_device *rdev = wiphy_to_dev(wiphy); struct cfg80211_registered_device *rdev = wiphy_to_dev(wiphy);
ASSERT_RTNL();
trace_cfg80211_sched_scan_stopped(wiphy); trace_cfg80211_sched_scan_stopped(wiphy);
rtnl_lock();
__cfg80211_stop_sched_scan(rdev, true); __cfg80211_stop_sched_scan(rdev, true);
}
EXPORT_SYMBOL(cfg80211_sched_scan_stopped_rtnl);
void cfg80211_sched_scan_stopped(struct wiphy *wiphy)
{
rtnl_lock();
cfg80211_sched_scan_stopped_rtnl(wiphy);
rtnl_unlock(); rtnl_unlock();
} }
EXPORT_SYMBOL(cfg80211_sched_scan_stopped); EXPORT_SYMBOL(cfg80211_sched_scan_stopped);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment