Skip to content

Commit a90a6e5

Browse files
committed
Merge tag 'mac80211-next-for-davem-2016-07-06' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next
Johannes Berg says: ==================== One more set of new features: * beacon report (for radio measurement) support in cfg80211/mac80211 * hwsim: allow wmediumd in namespaces * mac80211: extend 160MHz workaround to CSA IEs * mesh: properly encrypt group-addressed privacy action frames * mesh: allow setting peer AID * first steps for MU-MIMO monitor mode * along with various other cleanups and improvements ==================== Signed-off-by: David S. Miller <[email protected]>
2 parents fcf752a + 7d27a0b commit a90a6e5

File tree

46 files changed

+744
-205
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+744
-205
lines changed

drivers/net/wireless/ath/ath10k/mac.c

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3858,12 +3858,16 @@ void __ath10k_scan_finish(struct ath10k *ar)
38583858
break;
38593859
case ATH10K_SCAN_RUNNING:
38603860
case ATH10K_SCAN_ABORTING:
3861-
if (!ar->scan.is_roc)
3862-
ieee80211_scan_completed(ar->hw,
3863-
(ar->scan.state ==
3864-
ATH10K_SCAN_ABORTING));
3865-
else if (ar->scan.roc_notify)
3861+
if (!ar->scan.is_roc) {
3862+
struct cfg80211_scan_info info = {
3863+
.aborted = (ar->scan.state ==
3864+
ATH10K_SCAN_ABORTING),
3865+
};
3866+
3867+
ieee80211_scan_completed(ar->hw, &info);
3868+
} else if (ar->scan.roc_notify) {
38663869
ieee80211_remain_on_channel_expired(ar->hw);
3870+
}
38673871
/* fall through */
38683872
case ATH10K_SCAN_STARTING:
38693873
ar->scan.state = ATH10K_SCAN_IDLE;

drivers/net/wireless/ath/ath6kl/cfg80211.c

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -859,7 +859,11 @@ void ath6kl_cfg80211_disconnect_event(struct ath6kl_vif *vif, u8 reason,
859859
struct ath6kl *ar = vif->ar;
860860

861861
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);
863867
vif->scan_req = NULL;
864868
}
865869

@@ -1069,6 +1073,9 @@ static int ath6kl_cfg80211_scan(struct wiphy *wiphy,
10691073
void ath6kl_cfg80211_scan_complete_event(struct ath6kl_vif *vif, bool aborted)
10701074
{
10711075
struct ath6kl *ar = vif->ar;
1076+
struct cfg80211_scan_info info = {
1077+
.aborted = aborted,
1078+
};
10721079
int i;
10731080

10741081
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)
10891096
}
10901097

10911098
out:
1092-
cfg80211_scan_done(vif->scan_req, aborted);
1099+
cfg80211_scan_done(vif->scan_req, &info);
10931100
vif->scan_req = NULL;
10941101
}
10951102

@@ -3614,7 +3621,11 @@ void ath6kl_cfg80211_vif_stop(struct ath6kl_vif *vif, bool wmi_ready)
36143621
}
36153622

36163623
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);
36183629
vif->scan_req = NULL;
36193630
}
36203631

drivers/net/wireless/ath/ath9k/channel.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -960,6 +960,9 @@ void ath_roc_complete(struct ath_softc *sc, enum ath_roc_complete_reason reason)
960960
void ath_scan_complete(struct ath_softc *sc, bool abort)
961961
{
962962
struct ath_common *common = ath9k_hw_common(sc->sc_ah);
963+
struct cfg80211_scan_info info = {
964+
.aborted = abort,
965+
};
963966

964967
if (abort)
965968
ath_dbg(common, CHAN_CTX, "HW scan aborted\n");
@@ -969,7 +972,7 @@ void ath_scan_complete(struct ath_softc *sc, bool abort)
969972
sc->offchannel.scan_req = NULL;
970973
sc->offchannel.scan_vif = NULL;
971974
sc->offchannel.state = ATH_OFFCHANNEL_IDLE;
972-
ieee80211_scan_completed(sc->hw, abort);
975+
ieee80211_scan_completed(sc->hw, &info);
973976
clear_bit(ATH_OP_SCANNING, &common->op_flags);
974977
spin_lock_bh(&sc->chan_lock);
975978
if (test_bit(ATH_OP_MULTI_CHANNEL, &common->op_flags))

drivers/net/wireless/ath/wil6210/cfg80211.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1369,7 +1369,11 @@ static void wil_cfg80211_stop_p2p_device(struct wiphy *wiphy,
13691369
mutex_lock(&wil->mutex);
13701370
started = wil_p2p_stop_discovery(wil);
13711371
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);
13731377
wil->scan_request = NULL;
13741378
wil->radio_wdev = wil->wdev;
13751379
}

drivers/net/wireless/ath/wil6210/main.c

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -850,10 +850,14 @@ int wil_reset(struct wil6210_priv *wil, bool load_fw)
850850
mutex_unlock(&wil->wmi_mutex);
851851

852852
if (wil->scan_request) {
853+
struct cfg80211_scan_info info = {
854+
.aborted = true,
855+
};
856+
853857
wil_dbg_misc(wil, "Abort scan_request 0x%p\n",
854858
wil->scan_request);
855859
del_timer_sync(&wil->scan_timer);
856-
cfg80211_scan_done(wil->scan_request, true);
860+
cfg80211_scan_done(wil->scan_request, &info);
857861
wil->scan_request = NULL;
858862
}
859863

@@ -1049,10 +1053,14 @@ int __wil_down(struct wil6210_priv *wil)
10491053
(void)wil_p2p_stop_discovery(wil);
10501054

10511055
if (wil->scan_request) {
1056+
struct cfg80211_scan_info info = {
1057+
.aborted = true,
1058+
};
1059+
10521060
wil_dbg_misc(wil, "Abort scan_request 0x%p\n",
10531061
wil->scan_request);
10541062
del_timer_sync(&wil->scan_timer);
1055-
cfg80211_scan_done(wil->scan_request, true);
1063+
cfg80211_scan_done(wil->scan_request, &info);
10561064
wil->scan_request = NULL;
10571065
}
10581066

drivers/net/wireless/ath/wil6210/p2p.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,8 +252,12 @@ void wil_p2p_search_expired(struct work_struct *work)
252252
mutex_unlock(&wil->mutex);
253253

254254
if (started) {
255+
struct cfg80211_scan_info info = {
256+
.aborted = false,
257+
};
258+
255259
mutex_lock(&wil->p2p_wdev_mutex);
256-
cfg80211_scan_done(wil->scan_request, 0);
260+
cfg80211_scan_done(wil->scan_request, &info);
257261
wil->scan_request = NULL;
258262
wil->radio_wdev = wil->wdev;
259263
mutex_unlock(&wil->p2p_wdev_mutex);

drivers/net/wireless/ath/wil6210/wmi.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -426,15 +426,17 @@ static void wmi_evt_scan_complete(struct wil6210_priv *wil, int id,
426426
{
427427
if (wil->scan_request) {
428428
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+
};
430432

431433
wil_dbg_wmi(wil, "SCAN_COMPLETE(0x%08x)\n", data->status);
432434
wil_dbg_misc(wil, "Complete scan_request 0x%p aborted %d\n",
433-
wil->scan_request, aborted);
435+
wil->scan_request, info.aborted);
434436

435437
del_timer_sync(&wil->scan_timer);
436438
mutex_lock(&wil->p2p_wdev_mutex);
437-
cfg80211_scan_done(wil->scan_request, aborted);
439+
cfg80211_scan_done(wil->scan_request, &info);
438440
wil->radio_wdev = wil->wdev;
439441
mutex_unlock(&wil->p2p_wdev_mutex);
440442
wil->scan_request = NULL;

drivers/net/wireless/atmel/at76c50x-usb.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1922,6 +1922,9 @@ static void at76_dwork_hw_scan(struct work_struct *work)
19221922
{
19231923
struct at76_priv *priv = container_of(work, struct at76_priv,
19241924
dwork_hw_scan.work);
1925+
struct cfg80211_scan_info info = {
1926+
.aborted = false,
1927+
};
19251928
int ret;
19261929

19271930
if (priv->device_unplugged)
@@ -1948,7 +1951,7 @@ static void at76_dwork_hw_scan(struct work_struct *work)
19481951

19491952
mutex_unlock(&priv->mtx);
19501953

1951-
ieee80211_scan_completed(priv->hw, false);
1954+
ieee80211_scan_completed(priv->hw, &info);
19521955

19531956
ieee80211_wake_queues(priv->hw);
19541957
}

drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -775,9 +775,13 @@ s32 brcmf_notify_escan_complete(struct brcmf_cfg80211_info *cfg,
775775
if (!aborted)
776776
cfg80211_sched_scan_results(cfg_to_wiphy(cfg));
777777
} else if (scan_request) {
778+
struct cfg80211_scan_info info = {
779+
.aborted = aborted,
780+
};
781+
778782
brcmf_dbg(SCAN, "ESCAN Completed scan: %s\n",
779783
aborted ? "Aborted" : "Done");
780-
cfg80211_scan_done(scan_request, aborted);
784+
cfg80211_scan_done(scan_request, &info);
781785
}
782786
if (!test_and_clear_bit(BRCMF_SCAN_STATUS_BUSY, &cfg->scan_status))
783787
brcmf_dbg(SCAN, "Scan complete, probably P2P scan\n");

drivers/net/wireless/intel/iwlegacy/common.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1305,10 +1305,14 @@ il_send_scan_abort(struct il_priv *il)
13051305
static void
13061306
il_complete_scan(struct il_priv *il, bool aborted)
13071307
{
1308+
struct cfg80211_scan_info info = {
1309+
.aborted = aborted,
1310+
};
1311+
13081312
/* check if scan was requested from mac80211 */
13091313
if (il->scan_request) {
13101314
D_SCAN("Complete scan in mac80211\n");
1311-
ieee80211_scan_completed(il->hw, aborted);
1315+
ieee80211_scan_completed(il->hw, &info);
13121316
}
13131317

13141318
il->scan_vif = NULL;

drivers/net/wireless/intel/iwlwifi/dvm/scan.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,10 +94,14 @@ static int iwl_send_scan_abort(struct iwl_priv *priv)
9494

9595
static void iwl_complete_scan(struct iwl_priv *priv, bool aborted)
9696
{
97+
struct cfg80211_scan_info info = {
98+
.aborted = aborted,
99+
};
100+
97101
/* check if scan was requested from mac80211 */
98102
if (priv->scan_request) {
99103
IWL_DEBUG_SCAN(priv, "Complete scan in mac80211\n");
100-
ieee80211_scan_completed(priv->hw, aborted);
104+
ieee80211_scan_completed(priv->hw, &info);
101105
}
102106

103107
priv->scan_type = IWL_SCAN_NORMAL;

drivers/net/wireless/intel/iwlwifi/mvm/scan.c

Lines changed: 29 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -391,13 +391,16 @@ void iwl_mvm_rx_lmac_scan_complete_notif(struct iwl_mvm *mvm,
391391
ieee80211_sched_scan_stopped(mvm->hw);
392392
mvm->sched_scan_pass_all = SCHED_SCAN_PASS_ALL_DISABLED;
393393
} else if (mvm->scan_status & IWL_MVM_SCAN_REGULAR) {
394+
struct cfg80211_scan_info info = {
395+
.aborted = aborted,
396+
};
397+
394398
IWL_DEBUG_SCAN(mvm, "Regular scan %s, EBS status %s (FW)\n",
395399
aborted ? "aborted" : "completed",
396400
iwl_mvm_ebs_status_str(scan_notif->ebs_status));
397401

398402
mvm->scan_status &= ~IWL_MVM_SCAN_REGULAR;
399-
ieee80211_scan_completed(mvm->hw,
400-
scan_notif->status == IWL_SCAN_OFFLOAD_ABORTED);
403+
ieee80211_scan_completed(mvm->hw, &info);
401404
iwl_mvm_unref(mvm, IWL_MVM_REF_SCAN);
402405
del_timer(&mvm->scan_timer);
403406
} else {
@@ -1430,7 +1433,11 @@ void iwl_mvm_rx_umac_scan_complete_notif(struct iwl_mvm *mvm,
14301433

14311434
/* if the scan is already stopping, we don't need to notify mac80211 */
14321435
if (mvm->scan_uid_status[uid] == IWL_MVM_SCAN_REGULAR) {
1433-
ieee80211_scan_completed(mvm->hw, aborted);
1436+
struct cfg80211_scan_info info = {
1437+
.aborted = aborted,
1438+
};
1439+
1440+
ieee80211_scan_completed(mvm->hw, &info);
14341441
iwl_mvm_unref(mvm, IWL_MVM_REF_SCAN);
14351442
del_timer(&mvm->scan_timer);
14361443
} else if (mvm->scan_uid_status[uid] == IWL_MVM_SCAN_SCHED) {
@@ -1564,7 +1571,11 @@ void iwl_mvm_report_scan_aborted(struct iwl_mvm *mvm)
15641571

15651572
uid = iwl_mvm_scan_uid_by_status(mvm, IWL_MVM_SCAN_REGULAR);
15661573
if (uid >= 0) {
1567-
ieee80211_scan_completed(mvm->hw, true);
1574+
struct cfg80211_scan_info info = {
1575+
.aborted = true,
1576+
};
1577+
1578+
ieee80211_scan_completed(mvm->hw, &info);
15681579
mvm->scan_uid_status[uid] = 0;
15691580
}
15701581
uid = iwl_mvm_scan_uid_by_status(mvm, IWL_MVM_SCAN_SCHED);
@@ -1585,8 +1596,13 @@ void iwl_mvm_report_scan_aborted(struct iwl_mvm *mvm)
15851596
mvm->scan_uid_status[i] = 0;
15861597
}
15871598
} else {
1588-
if (mvm->scan_status & IWL_MVM_SCAN_REGULAR)
1589-
ieee80211_scan_completed(mvm->hw, true);
1599+
if (mvm->scan_status & IWL_MVM_SCAN_REGULAR) {
1600+
struct cfg80211_scan_info info = {
1601+
.aborted = true,
1602+
};
1603+
1604+
ieee80211_scan_completed(mvm->hw, &info);
1605+
}
15901606

15911607
/* Sched scan will be restarted by mac80211 in
15921608
* restart_hw, so do not report if FW is about to be
@@ -1629,8 +1645,13 @@ int iwl_mvm_scan_stop(struct iwl_mvm *mvm, int type, bool notify)
16291645
*/
16301646
iwl_mvm_unref(mvm, IWL_MVM_REF_SCAN);
16311647
del_timer(&mvm->scan_timer);
1632-
if (notify)
1633-
ieee80211_scan_completed(mvm->hw, true);
1648+
if (notify) {
1649+
struct cfg80211_scan_info info = {
1650+
.aborted = true,
1651+
};
1652+
1653+
ieee80211_scan_completed(mvm->hw, &info);
1654+
}
16341655
} else if (notify) {
16351656
ieee80211_sched_scan_stopped(mvm->hw);
16361657
mvm->sched_scan_pass_all = SCHED_SCAN_PASS_ALL_DISABLED;

drivers/net/wireless/intersil/orinoco/scan.c

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -237,15 +237,23 @@ void orinoco_add_hostscan_results(struct orinoco_private *priv,
237237

238238
scan_abort:
239239
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);
241245
priv->scan_request = NULL;
242246
}
243247
}
244248

245249
void orinoco_scan_done(struct orinoco_private *priv, bool abort)
246250
{
247251
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);
249257
priv->scan_request = NULL;
250258
}
251259
}

0 commit comments

Comments
 (0)