aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac80211/main.c')
-rw-r--r--net/mac80211/main.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/net/mac80211/main.c b/net/mac80211/main.c
index d81c178c7712..0b040fb73673 100644
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -345,6 +345,13 @@ void ieee80211_restart_hw(struct ieee80211_hw *hw)
345 ieee80211_stop_queues_by_reason(hw, 345 ieee80211_stop_queues_by_reason(hw,
346 IEEE80211_QUEUE_STOP_REASON_SUSPEND); 346 IEEE80211_QUEUE_STOP_REASON_SUSPEND);
347 347
348 /*
349 * Stop all Rx during the reconfig. We don't want state changes
350 * or driver callbacks while this is in progress.
351 */
352 local->in_reconfig = true;
353 barrier();
354
348 schedule_work(&local->restart_work); 355 schedule_work(&local->restart_work);
349} 356}
350EXPORT_SYMBOL(ieee80211_restart_hw); 357EXPORT_SYMBOL(ieee80211_restart_hw);
@@ -455,7 +462,9 @@ static const struct ieee80211_txrx_stypes
455ieee80211_default_mgmt_stypes[NUM_NL80211_IFTYPES] = { 462ieee80211_default_mgmt_stypes[NUM_NL80211_IFTYPES] = {
456 [NL80211_IFTYPE_ADHOC] = { 463 [NL80211_IFTYPE_ADHOC] = {
457 .tx = 0xffff, 464 .tx = 0xffff,
458 .rx = BIT(IEEE80211_STYPE_ACTION >> 4), 465 .rx = BIT(IEEE80211_STYPE_ACTION >> 4) |
466 BIT(IEEE80211_STYPE_AUTH >> 4) |
467 BIT(IEEE80211_STYPE_DEAUTH >> 4),
459 }, 468 },
460 [NL80211_IFTYPE_STATION] = { 469 [NL80211_IFTYPE_STATION] = {
461 .tx = 0xffff, 470 .tx = 0xffff,