aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/ath/ath6kl/cfg80211.c17
-rw-r--r--drivers/net/wireless/ath/wil6210/cfg80211.c6
-rw-r--r--drivers/net/wireless/ath/wil6210/main.c12
-rw-r--r--drivers/net/wireless/ath/wil6210/p2p.c6
-rw-r--r--drivers/net/wireless/ath/wil6210/wmi.c8
-rw-r--r--drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c6
-rw-r--r--drivers/net/wireless/intersil/orinoco/scan.c12
-rw-r--r--drivers/net/wireless/marvell/libertas/cfg.c11
-rw-r--r--drivers/net/wireless/marvell/mwifiex/cmdevt.c12
-rw-r--r--drivers/net/wireless/marvell/mwifiex/main.c6
-rw-r--r--drivers/net/wireless/marvell/mwifiex/scan.c12
-rw-r--r--drivers/net/wireless/rndis_wlan.c10
-rw-r--r--drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c11
-rw-r--r--drivers/staging/wilc1000/wilc_wfi_cfgoperations.c12
-rw-r--r--drivers/staging/wlan-ng/cfg80211.c5
15 files changed, 117 insertions, 29 deletions
diff --git a/drivers/net/wireless/ath/ath6kl/cfg80211.c b/drivers/net/wireless/ath/ath6kl/cfg80211.c
index 4e11ba06f089..ef5b40ef6d67 100644
--- a/drivers/net/wireless/ath/ath6kl/cfg80211.c
+++ b/drivers/net/wireless/ath/ath6kl/cfg80211.c
@@ -859,7 +859,11 @@ void ath6kl_cfg80211_disconnect_event(struct ath6kl_vif *vif, u8 reason,
859 struct ath6kl *ar = vif->ar; 859 struct ath6kl *ar = vif->ar;
860 860
861 if (vif->scan_req) { 861 if (vif->scan_req) {
862 cfg80211_scan_done(vif->scan_req, true); 862 struct cfg80211_scan_info info = {
863 .aborted = true,
864 };
865
866 cfg80211_scan_done(vif->scan_req, &info);
863 vif->scan_req = NULL; 867 vif->scan_req = NULL;
864 } 868 }
865 869
@@ -1069,6 +1073,9 @@ static int ath6kl_cfg80211_scan(struct wiphy *wiphy,
1069void ath6kl_cfg80211_scan_complete_event(struct ath6kl_vif *vif, bool aborted) 1073void ath6kl_cfg80211_scan_complete_event(struct ath6kl_vif *vif, bool aborted)
1070{ 1074{
1071 struct ath6kl *ar = vif->ar; 1075 struct ath6kl *ar = vif->ar;
1076 struct cfg80211_scan_info info = {
1077 .aborted = aborted,
1078 };
1072 int i; 1079 int i;
1073 1080
1074 ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "%s: status%s\n", __func__, 1081 ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "%s: status%s\n", __func__,
@@ -1089,7 +1096,7 @@ void ath6kl_cfg80211_scan_complete_event(struct ath6kl_vif *vif, bool aborted)
1089 } 1096 }
1090 1097
1091out: 1098out:
1092 cfg80211_scan_done(vif->scan_req, aborted); 1099 cfg80211_scan_done(vif->scan_req, &info);
1093 vif->scan_req = NULL; 1100 vif->scan_req = NULL;
1094} 1101}
1095 1102
@@ -3614,7 +3621,11 @@ void ath6kl_cfg80211_vif_stop(struct ath6kl_vif *vif, bool wmi_ready)
3614 } 3621 }
3615 3622
3616 if (vif->scan_req) { 3623 if (vif->scan_req) {
3617 cfg80211_scan_done(vif->scan_req, true); 3624 struct cfg80211_scan_info info = {
3625 .aborted = true,
3626 };
3627
3628 cfg80211_scan_done(vif->scan_req, &info);
3618 vif->scan_req = NULL; 3629 vif->scan_req = NULL;
3619 } 3630 }
3620 3631
diff --git a/drivers/net/wireless/ath/wil6210/cfg80211.c b/drivers/net/wireless/ath/wil6210/cfg80211.c
index 62bf9331bd7f..f0e1175fb76a 100644
--- a/drivers/net/wireless/ath/wil6210/cfg80211.c
+++ b/drivers/net/wireless/ath/wil6210/cfg80211.c
@@ -1369,7 +1369,11 @@ static void wil_cfg80211_stop_p2p_device(struct wiphy *wiphy,
1369 mutex_lock(&wil->mutex); 1369 mutex_lock(&wil->mutex);
1370 started = wil_p2p_stop_discovery(wil); 1370 started = wil_p2p_stop_discovery(wil);
1371 if (started && wil->scan_request) { 1371 if (started && wil->scan_request) {
1372 cfg80211_scan_done(wil->scan_request, 1); 1372 struct cfg80211_scan_info info = {
1373 .aborted = true,
1374 };
1375
1376 cfg80211_scan_done(wil->scan_request, &info);
1373 wil->scan_request = NULL; 1377 wil->scan_request = NULL;
1374 wil->radio_wdev = wil->wdev; 1378 wil->radio_wdev = wil->wdev;
1375 } 1379 }
diff --git a/drivers/net/wireless/ath/wil6210/main.c b/drivers/net/wireless/ath/wil6210/main.c
index 8e31d755bbee..4bc92e54984a 100644
--- a/drivers/net/wireless/ath/wil6210/main.c
+++ b/drivers/net/wireless/ath/wil6210/main.c
@@ -850,10 +850,14 @@ int wil_reset(struct wil6210_priv *wil, bool load_fw)
850 mutex_unlock(&wil->wmi_mutex); 850 mutex_unlock(&wil->wmi_mutex);
851 851
852 if (wil->scan_request) { 852 if (wil->scan_request) {
853 struct cfg80211_scan_info info = {
854 .aborted = true,
855 };
856
853 wil_dbg_misc(wil, "Abort scan_request 0x%p\n", 857 wil_dbg_misc(wil, "Abort scan_request 0x%p\n",
854 wil->scan_request); 858 wil->scan_request);
855 del_timer_sync(&wil->scan_timer); 859 del_timer_sync(&wil->scan_timer);
856 cfg80211_scan_done(wil->scan_request, true); 860 cfg80211_scan_done(wil->scan_request, &info);
857 wil->scan_request = NULL; 861 wil->scan_request = NULL;
858 } 862 }
859 863
@@ -1049,10 +1053,14 @@ int __wil_down(struct wil6210_priv *wil)
1049 (void)wil_p2p_stop_discovery(wil); 1053 (void)wil_p2p_stop_discovery(wil);
1050 1054
1051 if (wil->scan_request) { 1055 if (wil->scan_request) {
1056 struct cfg80211_scan_info info = {
1057 .aborted = true,
1058 };
1059
1052 wil_dbg_misc(wil, "Abort scan_request 0x%p\n", 1060 wil_dbg_misc(wil, "Abort scan_request 0x%p\n",
1053 wil->scan_request); 1061 wil->scan_request);
1054 del_timer_sync(&wil->scan_timer); 1062 del_timer_sync(&wil->scan_timer);
1055 cfg80211_scan_done(wil->scan_request, true); 1063 cfg80211_scan_done(wil->scan_request, &info);
1056 wil->scan_request = NULL; 1064 wil->scan_request = NULL;
1057 } 1065 }
1058 1066
diff --git a/drivers/net/wireless/ath/wil6210/p2p.c b/drivers/net/wireless/ath/wil6210/p2p.c
index 213b8259638c..e0f8aa0ebfac 100644
--- a/drivers/net/wireless/ath/wil6210/p2p.c
+++ b/drivers/net/wireless/ath/wil6210/p2p.c
@@ -252,8 +252,12 @@ void wil_p2p_search_expired(struct work_struct *work)
252 mutex_unlock(&wil->mutex); 252 mutex_unlock(&wil->mutex);
253 253
254 if (started) { 254 if (started) {
255 struct cfg80211_scan_info info = {
256 .aborted = false,
257 };
258
255 mutex_lock(&wil->p2p_wdev_mutex); 259 mutex_lock(&wil->p2p_wdev_mutex);
256 cfg80211_scan_done(wil->scan_request, 0); 260 cfg80211_scan_done(wil->scan_request, &info);
257 wil->scan_request = NULL; 261 wil->scan_request = NULL;
258 wil->radio_wdev = wil->wdev; 262 wil->radio_wdev = wil->wdev;
259 mutex_unlock(&wil->p2p_wdev_mutex); 263 mutex_unlock(&wil->p2p_wdev_mutex);
diff --git a/drivers/net/wireless/ath/wil6210/wmi.c b/drivers/net/wireless/ath/wil6210/wmi.c
index b80c5d850e1e..4d92541913c0 100644
--- a/drivers/net/wireless/ath/wil6210/wmi.c
+++ b/drivers/net/wireless/ath/wil6210/wmi.c
@@ -426,15 +426,17 @@ static void wmi_evt_scan_complete(struct wil6210_priv *wil, int id,
426{ 426{
427 if (wil->scan_request) { 427 if (wil->scan_request) {
428 struct wmi_scan_complete_event *data = d; 428 struct wmi_scan_complete_event *data = d;
429 bool aborted = (data->status != WMI_SCAN_SUCCESS); 429 struct cfg80211_scan_info info = {
430 .aborted = (data->status != WMI_SCAN_SUCCESS),
431 };
430 432
431 wil_dbg_wmi(wil, "SCAN_COMPLETE(0x%08x)\n", data->status); 433 wil_dbg_wmi(wil, "SCAN_COMPLETE(0x%08x)\n", data->status);
432 wil_dbg_misc(wil, "Complete scan_request 0x%p aborted %d\n", 434 wil_dbg_misc(wil, "Complete scan_request 0x%p aborted %d\n",
433 wil->scan_request, aborted); 435 wil->scan_request, info.aborted);
434 436
435 del_timer_sync(&wil->scan_timer); 437 del_timer_sync(&wil->scan_timer);
436 mutex_lock(&wil->p2p_wdev_mutex); 438 mutex_lock(&wil->p2p_wdev_mutex);
437 cfg80211_scan_done(wil->scan_request, aborted); 439 cfg80211_scan_done(wil->scan_request, &info);
438 wil->radio_wdev = wil->wdev; 440 wil->radio_wdev = wil->wdev;
439 mutex_unlock(&wil->p2p_wdev_mutex); 441 mutex_unlock(&wil->p2p_wdev_mutex);
440 wil->scan_request = NULL; 442 wil->scan_request = NULL;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
index 264bd638a3d9..afe2b202040a 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
@@ -775,9 +775,13 @@ s32 brcmf_notify_escan_complete(struct brcmf_cfg80211_info *cfg,
775 if (!aborted) 775 if (!aborted)
776 cfg80211_sched_scan_results(cfg_to_wiphy(cfg)); 776 cfg80211_sched_scan_results(cfg_to_wiphy(cfg));
777 } else if (scan_request) { 777 } else if (scan_request) {
778 struct cfg80211_scan_info info = {
779 .aborted = aborted,
780 };
781
778 brcmf_dbg(SCAN, "ESCAN Completed scan: %s\n", 782 brcmf_dbg(SCAN, "ESCAN Completed scan: %s\n",
779 aborted ? "Aborted" : "Done"); 783 aborted ? "Aborted" : "Done");
780 cfg80211_scan_done(scan_request, aborted); 784 cfg80211_scan_done(scan_request, &info);
781 } 785 }
782 if (!test_and_clear_bit(BRCMF_SCAN_STATUS_BUSY, &cfg->scan_status)) 786 if (!test_and_clear_bit(BRCMF_SCAN_STATUS_BUSY, &cfg->scan_status))
783 brcmf_dbg(SCAN, "Scan complete, probably P2P scan\n"); 787 brcmf_dbg(SCAN, "Scan complete, probably P2P scan\n");
diff --git a/drivers/net/wireless/intersil/orinoco/scan.c b/drivers/net/wireless/intersil/orinoco/scan.c
index d0ceb06c72d0..6d1d084854fb 100644
--- a/drivers/net/wireless/intersil/orinoco/scan.c
+++ b/drivers/net/wireless/intersil/orinoco/scan.c
@@ -237,7 +237,11 @@ void orinoco_add_hostscan_results(struct orinoco_private *priv,
237 237
238 scan_abort: 238 scan_abort:
239 if (priv->scan_request) { 239 if (priv->scan_request) {
240 cfg80211_scan_done(priv->scan_request, abort); 240 struct cfg80211_scan_info info = {
241 .aborted = abort,
242 };
243
244 cfg80211_scan_done(priv->scan_request, &info);
241 priv->scan_request = NULL; 245 priv->scan_request = NULL;
242 } 246 }
243} 247}
@@ -245,7 +249,11 @@ void orinoco_add_hostscan_results(struct orinoco_private *priv,
245void orinoco_scan_done(struct orinoco_private *priv, bool abort) 249void orinoco_scan_done(struct orinoco_private *priv, bool abort)
246{ 250{
247 if (priv->scan_request) { 251 if (priv->scan_request) {
248 cfg80211_scan_done(priv->scan_request, abort); 252 struct cfg80211_scan_info info = {
253 .aborted = abort,
254 };
255
256 cfg80211_scan_done(priv->scan_request, &info);
249 priv->scan_request = NULL; 257 priv->scan_request = NULL;
250 } 258 }
251} 259}
diff --git a/drivers/net/wireless/marvell/libertas/cfg.c b/drivers/net/wireless/marvell/libertas/cfg.c
index 776b44bfd93a..ea4802446618 100644
--- a/drivers/net/wireless/marvell/libertas/cfg.c
+++ b/drivers/net/wireless/marvell/libertas/cfg.c
@@ -796,10 +796,15 @@ void lbs_scan_done(struct lbs_private *priv)
796{ 796{
797 WARN_ON(!priv->scan_req); 797 WARN_ON(!priv->scan_req);
798 798
799 if (priv->internal_scan) 799 if (priv->internal_scan) {
800 kfree(priv->scan_req); 800 kfree(priv->scan_req);
801 else 801 } else {
802 cfg80211_scan_done(priv->scan_req, false); 802 struct cfg80211_scan_info info = {
803 .aborted = false,
804 };
805
806 cfg80211_scan_done(priv->scan_req, &info);
807 }
803 808
804 priv->scan_req = NULL; 809 priv->scan_req = NULL;
805} 810}
diff --git a/drivers/net/wireless/marvell/mwifiex/cmdevt.c b/drivers/net/wireless/marvell/mwifiex/cmdevt.c
index 6bc2011d8609..e7a21443647e 100644
--- a/drivers/net/wireless/marvell/mwifiex/cmdevt.c
+++ b/drivers/net/wireless/marvell/mwifiex/cmdevt.c
@@ -1057,8 +1057,12 @@ mwifiex_cancel_all_pending_cmd(struct mwifiex_adapter *adapter)
1057 if (!priv) 1057 if (!priv)
1058 continue; 1058 continue;
1059 if (priv->scan_request) { 1059 if (priv->scan_request) {
1060 struct cfg80211_scan_info info = {
1061 .aborted = true,
1062 };
1063
1060 mwifiex_dbg(adapter, WARN, "info: aborting scan\n"); 1064 mwifiex_dbg(adapter, WARN, "info: aborting scan\n");
1061 cfg80211_scan_done(priv->scan_request, 1); 1065 cfg80211_scan_done(priv->scan_request, &info);
1062 priv->scan_request = NULL; 1066 priv->scan_request = NULL;
1063 } 1067 }
1064 } 1068 }
@@ -1112,8 +1116,12 @@ mwifiex_cancel_pending_ioctl(struct mwifiex_adapter *adapter)
1112 if (!priv) 1116 if (!priv)
1113 continue; 1117 continue;
1114 if (priv->scan_request) { 1118 if (priv->scan_request) {
1119 struct cfg80211_scan_info info = {
1120 .aborted = true,
1121 };
1122
1115 mwifiex_dbg(adapter, WARN, "info: aborting scan\n"); 1123 mwifiex_dbg(adapter, WARN, "info: aborting scan\n");
1116 cfg80211_scan_done(priv->scan_request, 1); 1124 cfg80211_scan_done(priv->scan_request, &info);
1117 priv->scan_request = NULL; 1125 priv->scan_request = NULL;
1118 } 1126 }
1119 } 1127 }
diff --git a/drivers/net/wireless/marvell/mwifiex/main.c b/drivers/net/wireless/marvell/mwifiex/main.c
index 0e280f879b58..db4925db39aa 100644
--- a/drivers/net/wireless/marvell/mwifiex/main.c
+++ b/drivers/net/wireless/marvell/mwifiex/main.c
@@ -697,9 +697,13 @@ mwifiex_close(struct net_device *dev)
697 struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev); 697 struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev);
698 698
699 if (priv->scan_request) { 699 if (priv->scan_request) {
700 struct cfg80211_scan_info info = {
701 .aborted = true,
702 };
703
700 mwifiex_dbg(priv->adapter, INFO, 704 mwifiex_dbg(priv->adapter, INFO,
701 "aborting scan on ndo_stop\n"); 705 "aborting scan on ndo_stop\n");
702 cfg80211_scan_done(priv->scan_request, 1); 706 cfg80211_scan_done(priv->scan_request, &info);
703 priv->scan_request = NULL; 707 priv->scan_request = NULL;
704 priv->scan_aborting = true; 708 priv->scan_aborting = true;
705 } 709 }
diff --git a/drivers/net/wireless/marvell/mwifiex/scan.c b/drivers/net/wireless/marvell/mwifiex/scan.c
index bc5e52cebce1..fdd749110fcb 100644
--- a/drivers/net/wireless/marvell/mwifiex/scan.c
+++ b/drivers/net/wireless/marvell/mwifiex/scan.c
@@ -1956,9 +1956,13 @@ static void mwifiex_check_next_scan_command(struct mwifiex_private *priv)
1956 mwifiex_complete_scan(priv); 1956 mwifiex_complete_scan(priv);
1957 1957
1958 if (priv->scan_request) { 1958 if (priv->scan_request) {
1959 struct cfg80211_scan_info info = {
1960 .aborted = false,
1961 };
1962
1959 mwifiex_dbg(adapter, INFO, 1963 mwifiex_dbg(adapter, INFO,
1960 "info: notifying scan done\n"); 1964 "info: notifying scan done\n");
1961 cfg80211_scan_done(priv->scan_request, 0); 1965 cfg80211_scan_done(priv->scan_request, &info);
1962 priv->scan_request = NULL; 1966 priv->scan_request = NULL;
1963 } else { 1967 } else {
1964 priv->scan_aborting = false; 1968 priv->scan_aborting = false;
@@ -1977,9 +1981,13 @@ static void mwifiex_check_next_scan_command(struct mwifiex_private *priv)
1977 1981
1978 if (!adapter->active_scan_triggered) { 1982 if (!adapter->active_scan_triggered) {
1979 if (priv->scan_request) { 1983 if (priv->scan_request) {
1984 struct cfg80211_scan_info info = {
1985 .aborted = true,
1986 };
1987
1980 mwifiex_dbg(adapter, INFO, 1988 mwifiex_dbg(adapter, INFO,
1981 "info: aborting scan\n"); 1989 "info: aborting scan\n");
1982 cfg80211_scan_done(priv->scan_request, 1); 1990 cfg80211_scan_done(priv->scan_request, &info);
1983 priv->scan_request = NULL; 1991 priv->scan_request = NULL;
1984 } else { 1992 } else {
1985 priv->scan_aborting = false; 1993 priv->scan_aborting = false;
diff --git a/drivers/net/wireless/rndis_wlan.c b/drivers/net/wireless/rndis_wlan.c
index 569918c485b4..603c90470225 100644
--- a/drivers/net/wireless/rndis_wlan.c
+++ b/drivers/net/wireless/rndis_wlan.c
@@ -2134,6 +2134,7 @@ static void rndis_get_scan_results(struct work_struct *work)
2134 struct rndis_wlan_private *priv = 2134 struct rndis_wlan_private *priv =
2135 container_of(work, struct rndis_wlan_private, scan_work.work); 2135 container_of(work, struct rndis_wlan_private, scan_work.work);
2136 struct usbnet *usbdev = priv->usbdev; 2136 struct usbnet *usbdev = priv->usbdev;
2137 struct cfg80211_scan_info info = {};
2137 int ret; 2138 int ret;
2138 2139
2139 netdev_dbg(usbdev->net, "get_scan_results\n"); 2140 netdev_dbg(usbdev->net, "get_scan_results\n");
@@ -2143,7 +2144,8 @@ static void rndis_get_scan_results(struct work_struct *work)
2143 2144
2144 ret = rndis_check_bssid_list(usbdev, NULL, NULL); 2145 ret = rndis_check_bssid_list(usbdev, NULL, NULL);
2145 2146
2146 cfg80211_scan_done(priv->scan_request, ret < 0); 2147 info.aborted = ret < 0;
2148 cfg80211_scan_done(priv->scan_request, &info);
2147 2149
2148 priv->scan_request = NULL; 2150 priv->scan_request = NULL;
2149} 2151}
@@ -3574,7 +3576,11 @@ static int rndis_wlan_stop(struct usbnet *usbdev)
3574 flush_workqueue(priv->workqueue); 3576 flush_workqueue(priv->workqueue);
3575 3577
3576 if (priv->scan_request) { 3578 if (priv->scan_request) {
3577 cfg80211_scan_done(priv->scan_request, true); 3579 struct cfg80211_scan_info info = {
3580 .aborted = true,
3581 };
3582
3583 cfg80211_scan_done(priv->scan_request, &info);
3578 priv->scan_request = NULL; 3584 priv->scan_request = NULL;
3579 } 3585 }
3580 3586
diff --git a/drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c b/drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c
index 0da559d929bc..d0ba3778990e 100644
--- a/drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c
+++ b/drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c
@@ -1256,10 +1256,15 @@ void rtw_cfg80211_indicate_scan_done(struct rtw_wdev_priv *pwdev_priv,
1256 DBG_8723A("%s with scan req\n", __func__); 1256 DBG_8723A("%s with scan req\n", __func__);
1257 1257
1258 if (pwdev_priv->scan_request->wiphy != 1258 if (pwdev_priv->scan_request->wiphy !=
1259 pwdev_priv->rtw_wdev->wiphy) 1259 pwdev_priv->rtw_wdev->wiphy) {
1260 DBG_8723A("error wiphy compare\n"); 1260 DBG_8723A("error wiphy compare\n");
1261 else 1261 } else {
1262 cfg80211_scan_done(pwdev_priv->scan_request, aborted); 1262 struct cfg80211_scan_info info = {
1263 .aborted = aborted,
1264 };
1265
1266 cfg80211_scan_done(pwdev_priv->scan_request, &info);
1267 }
1263 1268
1264 pwdev_priv->scan_request = NULL; 1269 pwdev_priv->scan_request = NULL;
1265 } else { 1270 } else {
diff --git a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c
index 51aff4ff7d7c..a0d8e22e575b 100644
--- a/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c
+++ b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c
@@ -454,7 +454,11 @@ static void CfgScanResult(enum scan_event scan_event,
454 mutex_lock(&priv->scan_req_lock); 454 mutex_lock(&priv->scan_req_lock);
455 455
456 if (priv->pstrScanReq) { 456 if (priv->pstrScanReq) {
457 cfg80211_scan_done(priv->pstrScanReq, false); 457 struct cfg80211_scan_info info = {
458 .aborted = false,
459 };
460
461 cfg80211_scan_done(priv->pstrScanReq, &info);
458 priv->u32RcvdChCount = 0; 462 priv->u32RcvdChCount = 0;
459 priv->bCfgScanning = false; 463 priv->bCfgScanning = false;
460 priv->pstrScanReq = NULL; 464 priv->pstrScanReq = NULL;
@@ -464,10 +468,14 @@ static void CfgScanResult(enum scan_event scan_event,
464 mutex_lock(&priv->scan_req_lock); 468 mutex_lock(&priv->scan_req_lock);
465 469
466 if (priv->pstrScanReq) { 470 if (priv->pstrScanReq) {
471 struct cfg80211_scan_info info = {
472 .aborted = false,
473 };
474
467 update_scan_time(); 475 update_scan_time();
468 refresh_scan(priv, 1, false); 476 refresh_scan(priv, 1, false);
469 477
470 cfg80211_scan_done(priv->pstrScanReq, false); 478 cfg80211_scan_done(priv->pstrScanReq, &info);
471 priv->bCfgScanning = false; 479 priv->bCfgScanning = false;
472 priv->pstrScanReq = NULL; 480 priv->pstrScanReq = NULL;
473 } 481 }
diff --git a/drivers/staging/wlan-ng/cfg80211.c b/drivers/staging/wlan-ng/cfg80211.c
index a6e6fb9f42e1..f46dfe6b24e8 100644
--- a/drivers/staging/wlan-ng/cfg80211.c
+++ b/drivers/staging/wlan-ng/cfg80211.c
@@ -338,6 +338,8 @@ static int prism2_scan(struct wiphy *wiphy,
338 struct p80211msg_dot11req_scan msg1; 338 struct p80211msg_dot11req_scan msg1;
339 struct p80211msg_dot11req_scan_results msg2; 339 struct p80211msg_dot11req_scan_results msg2;
340 struct cfg80211_bss *bss; 340 struct cfg80211_bss *bss;
341 struct cfg80211_scan_info info = {};
342
341 int result; 343 int result;
342 int err = 0; 344 int err = 0;
343 int numbss = 0; 345 int numbss = 0;
@@ -440,7 +442,8 @@ static int prism2_scan(struct wiphy *wiphy,
440 err = prism2_result2err(msg2.resultcode.data); 442 err = prism2_result2err(msg2.resultcode.data);
441 443
442exit: 444exit:
443 cfg80211_scan_done(request, err ? 1 : 0); 445 info.aborted = !!(err);
446 cfg80211_scan_done(request, &info);
444 priv->scan_request = NULL; 447 priv->scan_request = NULL;
445 return err; 448 return err;
446} 449}