Changeset 44738


Ignore:
Timestamp:
2015-03-13T06:17:06+01:00 (3 years ago)
Author:
nbd
Message:

mac80211: fix a pointer handling error in the new tx queueing code

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/kernel/mac80211/patches/300-mac80211-add-an-intermediate-software-queue-implemen.patch

    r44655 r44738  
    324324                return NULL; 
    325325  
    326 @@ -321,11 +328,23 @@ struct sta_info *sta_info_alloc(struct i 
     326@@ -321,11 +328,25 @@ struct sta_info *sta_info_alloc(struct i 
    327327        for (i = 0; i < ARRAY_SIZE(sta->chain_signal_avg); i++) 
    328328                ewma_init(&sta->chain_signal_avg[i], 1024, 8); 
     
    332332-               return NULL; 
    333333+       if (local->ops->wake_tx_queue) { 
     334+               void *txq_data; 
    334335+               int size = sizeof(struct txq_info) + 
    335336+                          ALIGN(hw->txq_data_size, sizeof(void *)); 
    336337+ 
    337 +               sta->txq = kcalloc(IEEE80211_NUM_TIDS, size, gfp); 
    338 +               if (!sta->txq) 
     338+               txq_data = kcalloc(IEEE80211_NUM_TIDS, size, gfp); 
     339+               if (!txq_data) 
    339340+                       goto free; 
    340341+ 
     342+               sta->txq = txq_data; 
    341343+               for (i = 0; i < IEEE80211_NUM_TIDS; i++) { 
    342 +                       struct txq_info *txq = sta->txq + i * size; 
     344+                       struct txq_info *txq = txq_data + i * size; 
    343345+                       ieee80211_init_tx_queue(sdata, sta, txq, i); 
    344346+               } 
     
    351353                /* 
    352354                 * timer_to_tid must be initialized with identity mapping 
    353 @@ -346,7 +365,7 @@ struct sta_info *sta_info_alloc(struct i 
     355@@ -346,7 +367,7 @@ struct sta_info *sta_info_alloc(struct i 
    354356        if (sdata->vif.type == NL80211_IFTYPE_AP || 
    355357            sdata->vif.type == NL80211_IFTYPE_AP_VLAN) { 
     
    360362                                IEEE80211_HT_CAP_SM_PS_SHIFT; 
    361363                /* 
    362 @@ -371,6 +390,12 @@ struct sta_info *sta_info_alloc(struct i 
     364@@ -371,6 +392,12 @@ struct sta_info *sta_info_alloc(struct i 
    363365        sta_dbg(sdata, "Allocated STA %pM\n", sta->sta.addr); 
    364366  
Note: See TracChangeset for help on using the changeset viewer.