mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 11:11:45 -04:00
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless
This commit is contained in:
commit
42fb0b0278
36 changed files with 181 additions and 95 deletions
|
|
@ -1324,7 +1324,6 @@ static void ieee80211_set_disassoc(struct ieee80211_sub_if_data *sdata,
|
|||
struct ieee80211_local *local = sdata->local;
|
||||
struct sta_info *sta;
|
||||
u32 changed = 0;
|
||||
u8 bssid[ETH_ALEN];
|
||||
|
||||
ASSERT_MGD_MTX(ifmgd);
|
||||
|
||||
|
|
@ -1336,10 +1335,7 @@ static void ieee80211_set_disassoc(struct ieee80211_sub_if_data *sdata,
|
|||
|
||||
ieee80211_stop_poll(sdata);
|
||||
|
||||
memcpy(bssid, ifmgd->associated->bssid, ETH_ALEN);
|
||||
|
||||
ifmgd->associated = NULL;
|
||||
memset(ifmgd->bssid, 0, ETH_ALEN);
|
||||
|
||||
/*
|
||||
* we need to commit the associated = NULL change because the
|
||||
|
|
@ -1359,7 +1355,7 @@ static void ieee80211_set_disassoc(struct ieee80211_sub_if_data *sdata,
|
|||
netif_carrier_off(sdata->dev);
|
||||
|
||||
mutex_lock(&local->sta_mtx);
|
||||
sta = sta_info_get(sdata, bssid);
|
||||
sta = sta_info_get(sdata, ifmgd->bssid);
|
||||
if (sta) {
|
||||
set_sta_flag(sta, WLAN_STA_BLOCK_BA);
|
||||
ieee80211_sta_tear_down_BA_sessions(sta, tx);
|
||||
|
|
@ -1368,13 +1364,16 @@ static void ieee80211_set_disassoc(struct ieee80211_sub_if_data *sdata,
|
|||
|
||||
/* deauthenticate/disassociate now */
|
||||
if (tx || frame_buf)
|
||||
ieee80211_send_deauth_disassoc(sdata, bssid, stype, reason,
|
||||
tx, frame_buf);
|
||||
ieee80211_send_deauth_disassoc(sdata, ifmgd->bssid, stype,
|
||||
reason, tx, frame_buf);
|
||||
|
||||
/* flush out frame */
|
||||
if (tx)
|
||||
drv_flush(local, false);
|
||||
|
||||
/* clear bssid only after building the needed mgmt frames */
|
||||
memset(ifmgd->bssid, 0, ETH_ALEN);
|
||||
|
||||
/* remove AP and TDLS peers */
|
||||
sta_info_flush(local, sdata);
|
||||
|
||||
|
|
|
|||
|
|
@ -2434,7 +2434,7 @@ ieee80211_rx_h_action_return(struct ieee80211_rx_data *rx)
|
|||
* frames that we didn't handle, including returning unknown
|
||||
* ones. For all other modes we will return them to the sender,
|
||||
* setting the 0x80 bit in the action category, as required by
|
||||
* 802.11-2007 7.3.1.11.
|
||||
* 802.11-2012 9.24.4.
|
||||
* Newer versions of hostapd shall also use the management frame
|
||||
* registration mechanisms, but older ones still use cooked
|
||||
* monitor interfaces so push all frames there.
|
||||
|
|
@ -2444,6 +2444,9 @@ ieee80211_rx_h_action_return(struct ieee80211_rx_data *rx)
|
|||
sdata->vif.type == NL80211_IFTYPE_AP_VLAN))
|
||||
return RX_DROP_MONITOR;
|
||||
|
||||
if (is_multicast_ether_addr(mgmt->da))
|
||||
return RX_DROP_MONITOR;
|
||||
|
||||
/* do not return rejected action frames */
|
||||
if (mgmt->u.action.category & 0x80)
|
||||
return RX_DROP_UNUSABLE;
|
||||
|
|
|
|||
Loading…
Reference in a new issue