aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/mlme.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac80211/mlme.c')
-rw-r--r--net/mac80211/mlme.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index dc5049d58c51..dcc14e99227c 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -458,9 +458,15 @@ static void ieee80211_send_deauth_disassoc(struct ieee80211_sub_if_data *sdata,
458 mgmt->u.deauth.reason_code = cpu_to_le16(reason); 458 mgmt->u.deauth.reason_code = cpu_to_le16(reason);
459 459
460 if (stype == IEEE80211_STYPE_DEAUTH) 460 if (stype == IEEE80211_STYPE_DEAUTH)
461 cfg80211_send_deauth(sdata->dev, (u8 *)mgmt, skb->len, cookie); 461 if (cookie)
462 __cfg80211_send_deauth(sdata->dev, (u8 *)mgmt, skb->len);
463 else
464 cfg80211_send_deauth(sdata->dev, (u8 *)mgmt, skb->len);
462 else 465 else
463 cfg80211_send_disassoc(sdata->dev, (u8 *)mgmt, skb->len, cookie); 466 if (cookie)
467 __cfg80211_send_disassoc(sdata->dev, (u8 *)mgmt, skb->len);
468 else
469 cfg80211_send_disassoc(sdata->dev, (u8 *)mgmt, skb->len);
464 ieee80211_tx_skb(sdata, skb, ifmgd->flags & IEEE80211_STA_MFP_ENABLED); 470 ieee80211_tx_skb(sdata, skb, ifmgd->flags & IEEE80211_STA_MFP_ENABLED);
465} 471}
466 472
@@ -923,7 +929,7 @@ static void ieee80211_set_associated(struct ieee80211_sub_if_data *sdata,
923 ieee80211_recalc_ps(local, -1); 929 ieee80211_recalc_ps(local, -1);
924 mutex_unlock(&local->iflist_mtx); 930 mutex_unlock(&local->iflist_mtx);
925 931
926 netif_tx_start_all_queues(sdata->dev); 932 netif_start_queue(sdata->dev);
927 netif_carrier_on(sdata->dev); 933 netif_carrier_on(sdata->dev);
928} 934}
929 935
@@ -1055,7 +1061,7 @@ static void ieee80211_set_disassoc(struct ieee80211_sub_if_data *sdata,
1055 * time -- we don't want the scan code to enable queues. 1061 * time -- we don't want the scan code to enable queues.
1056 */ 1062 */
1057 1063
1058 netif_tx_stop_all_queues(sdata->dev); 1064 netif_stop_queue(sdata->dev);
1059 netif_carrier_off(sdata->dev); 1065 netif_carrier_off(sdata->dev);
1060 1066
1061 rcu_read_lock(); 1067 rcu_read_lock();
@@ -1958,12 +1964,10 @@ static void ieee80211_sta_rx_queued_mgmt(struct ieee80211_sub_if_data *sdata,
1958 /* no action */ 1964 /* no action */
1959 break; 1965 break;
1960 case RX_MGMT_CFG80211_DEAUTH: 1966 case RX_MGMT_CFG80211_DEAUTH:
1961 cfg80211_send_deauth(sdata->dev, (u8 *)mgmt, skb->len, 1967 cfg80211_send_deauth(sdata->dev, (u8 *)mgmt, skb->len);
1962 NULL);
1963 break; 1968 break;
1964 case RX_MGMT_CFG80211_DISASSOC: 1969 case RX_MGMT_CFG80211_DISASSOC:
1965 cfg80211_send_disassoc(sdata->dev, (u8 *)mgmt, skb->len, 1970 cfg80211_send_disassoc(sdata->dev, (u8 *)mgmt, skb->len);
1966 NULL);
1967 break; 1971 break;
1968 default: 1972 default:
1969 WARN(1, "unexpected: %d", rma); 1973 WARN(1, "unexpected: %d", rma);
@@ -2018,7 +2022,7 @@ static void ieee80211_sta_rx_queued_mgmt(struct ieee80211_sub_if_data *sdata,
2018 cfg80211_send_rx_assoc(sdata->dev, (u8 *) mgmt, skb->len); 2022 cfg80211_send_rx_assoc(sdata->dev, (u8 *) mgmt, skb->len);
2019 break; 2023 break;
2020 case RX_MGMT_CFG80211_DEAUTH: 2024 case RX_MGMT_CFG80211_DEAUTH:
2021 cfg80211_send_deauth(sdata->dev, (u8 *)mgmt, skb->len, NULL); 2025 cfg80211_send_deauth(sdata->dev, (u8 *)mgmt, skb->len);
2022 break; 2026 break;
2023 default: 2027 default:
2024 WARN(1, "unexpected: %d", rma); 2028 WARN(1, "unexpected: %d", rma);