aboutsummaryrefslogtreecommitdiffstats
path: root/net/wireless/scan.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/wireless/scan.c')
-rw-r--r--net/wireless/scan.c21
1 files changed, 7 insertions, 14 deletions
diff --git a/net/wireless/scan.c b/net/wireless/scan.c
index 65dfae3b9d41..73a441d237b5 100644
--- a/net/wireless/scan.c
+++ b/net/wireless/scan.c
@@ -119,22 +119,14 @@ void cfg80211_sched_scan_results(struct wiphy *wiphy)
119} 119}
120EXPORT_SYMBOL(cfg80211_sched_scan_results); 120EXPORT_SYMBOL(cfg80211_sched_scan_results);
121 121
122void __cfg80211_sched_scan_stopped(struct work_struct *wk) 122void cfg80211_sched_scan_stopped(struct wiphy *wiphy)
123{ 123{
124 struct cfg80211_registered_device *rdev; 124 struct cfg80211_registered_device *rdev = wiphy_to_dev(wiphy);
125
126 rdev = container_of(wk, struct cfg80211_registered_device,
127 sched_scan_stopped_wk);
128 125
129 cfg80211_lock_rdev(rdev); 126 cfg80211_lock_rdev(rdev);
130 __cfg80211_stop_sched_scan(rdev, true); 127 __cfg80211_stop_sched_scan(rdev, true);
131 cfg80211_unlock_rdev(rdev); 128 cfg80211_unlock_rdev(rdev);
132} 129}
133
134void cfg80211_sched_scan_stopped(struct wiphy *wiphy)
135{
136 queue_work(cfg80211_wq, &wiphy_to_dev(wiphy)->sched_scan_stopped_wk);
137}
138EXPORT_SYMBOL(cfg80211_sched_scan_stopped); 130EXPORT_SYMBOL(cfg80211_sched_scan_stopped);
139 131
140int __cfg80211_stop_sched_scan(struct cfg80211_registered_device *rdev, 132int __cfg80211_stop_sched_scan(struct cfg80211_registered_device *rdev,
@@ -150,10 +142,11 @@ int __cfg80211_stop_sched_scan(struct cfg80211_registered_device *rdev,
150 142
151 dev = rdev->sched_scan_req->dev; 143 dev = rdev->sched_scan_req->dev;
152 144
153 err = rdev->ops->sched_scan_stop(&rdev->wiphy, dev, 145 if (!driver_initiated) {
154 driver_initiated); 146 err = rdev->ops->sched_scan_stop(&rdev->wiphy, dev);
155 if (err) 147 if (err)
156 return err; 148 return err;
149 }
157 150
158 nl80211_send_sched_scan(rdev, dev, NL80211_CMD_SCHED_SCAN_STOPPED); 151 nl80211_send_sched_scan(rdev, dev, NL80211_CMD_SCHED_SCAN_STOPPED);
159 152