Changeset 38257


Ignore:
Timestamp:
2013-09-29T21:42:00+02:00 (4 years ago)
Author:
nbd
Message:

mac80211: add AP inactivity handling / probing fixes to improve stability

Signed-off-by: Felix Fietkau <nbd@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/kernel/mac80211/patches/300-pending_work.patch

    r38255 r38257  
    51115111                             struct ieee80211_channel *chan, bool offchan, 
    51125112                             unsigned int wait, const u8 *buf, size_t len, 
     5113@@ -3332,7 +3514,7 @@ static int ieee80211_probe_client(struct 
     5114                return -EINVAL; 
     5115        } 
     5116        band = chanctx_conf->def.chan->band; 
     5117-       sta = sta_info_get(sdata, peer); 
     5118+       sta = sta_info_get_bss(sdata, peer); 
     5119        if (sta) { 
     5120                qos = test_sta_flag(sta, WLAN_STA_WME); 
     5121        } else { 
    51135122@@ -3501,4 +3683,5 @@ struct cfg80211_ops mac80211_config_ops  
    51145123        .get_et_strings = ieee80211_get_et_strings, 
     
    53055314--- a/net/mac80211/tx.c 
    53065315+++ b/net/mac80211/tx.c 
    5307 @@ -2326,6 +2326,81 @@ static int ieee80211_beacon_add_tim(stru 
     5316@@ -1101,7 +1101,8 @@ ieee80211_tx_prepare(struct ieee80211_su 
     5317                tx->sta = rcu_dereference(sdata->u.vlan.sta); 
     5318                if (!tx->sta && sdata->dev->ieee80211_ptr->use_4addr) 
     5319                        return TX_DROP; 
     5320-       } else if (info->flags & IEEE80211_TX_CTL_INJECTED || 
     5321+       } else if (info->flags & (IEEE80211_TX_CTL_INJECTED | 
     5322+                                 IEEE80211_TX_INTFL_NL80211_FRAME_TX) || 
     5323                   tx->sdata->control_port_protocol == tx->skb->protocol) { 
     5324                tx->sta = sta_info_get_bss(sdata, hdr->addr1); 
     5325        } 
     5326@@ -2326,6 +2327,81 @@ static int ieee80211_beacon_add_tim(stru 
    53085327        return 0; 
    53095328 } 
     
    53875406                                         struct ieee80211_vif *vif, 
    53885407                                         u16 *tim_offset, u16 *tim_length) 
    5389 @@ -2356,6 +2431,9 @@ struct sk_buff *ieee80211_beacon_get_tim 
     5408@@ -2356,6 +2432,9 @@ struct sk_buff *ieee80211_beacon_get_tim 
    53905409                struct beacon_data *beacon = rcu_dereference(ap->beacon); 
    53915410  
     
    78547873                changed |= IEEE80211_CONF_CHANGE_POWER; 
    78557874                local->hw.conf.power_level = power; 
     7875--- a/net/mac80211/status.c 
     7876+++ b/net/mac80211/status.c 
     7877@@ -180,6 +180,9 @@ static void ieee80211_frame_acked(struct 
     7878        struct ieee80211_local *local = sta->local; 
     7879        struct ieee80211_sub_if_data *sdata = sta->sdata; 
     7880  
     7881+       if (local->hw.flags & IEEE80211_HW_REPORTS_TX_ACK_STATUS) 
     7882+               sta->last_rx = jiffies; 
     7883+ 
     7884        if (ieee80211_is_data_qos(mgmt->frame_control)) { 
     7885                struct ieee80211_hdr *hdr = (void *) skb->data; 
     7886                u8 *qc = ieee80211_get_qos_ctl(hdr); 
Note: See TracChangeset for help on using the changeset viewer.