Changeset 37985


Ignore:
Timestamp:
2013-09-14T17:30:13+02:00 (4 years ago)
Author:
nbd
Message:

ath9k: add another minor tx path fix

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

File:
1 edited

Legend:

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

    r37982 r37985  
    12131213  
    12141214        rcu_read_unlock(); 
    1215 @@ -1792,57 +1956,6 @@ static void ath_tx_txqaddbuf(struct ath_ 
     1215@@ -1787,62 +1951,13 @@ static void ath_tx_txqaddbuf(struct ath_ 
     1216                        if (bf_is_ampdu_not_probing(bf)) 
     1217                                txq->axq_ampdu_depth++; 
     1218  
     1219-                       bf = bf->bf_lastbf->bf_next; 
     1220+                       bf_last = bf->bf_lastbf; 
     1221+                       bf = bf_last->bf_next; 
     1222+                       bf_last->bf_next = NULL; 
     1223                } 
    12161224        } 
    12171225 } 
     
    12711279                               struct ath_atx_tid *tid, struct sk_buff *skb) 
    12721280 { 
    1273 @@ -1985,6 +2098,7 @@ static int ath_tx_prepare(struct ieee802 
     1281@@ -1985,6 +2100,7 @@ static int ath_tx_prepare(struct ieee802 
    12741282        struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); 
    12751283        struct ieee80211_sta *sta = txctl->sta; 
     
    12791287        int frmlen = skb->len + FCS_LEN; 
    12801288        int padpos, padsize; 
    1281 @@ -1992,6 +2106,10 @@ static int ath_tx_prepare(struct ieee802 
     1289@@ -1992,6 +2108,10 @@ static int ath_tx_prepare(struct ieee802 
    12821290        /* NOTE:  sta can be NULL according to net/mac80211.h */ 
    12831291        if (sta) 
     
    12901298        if (info->control.hw_key) 
    12911299                frmlen += info->control.hw_key->icv_len; 
    1292 @@ -2041,7 +2159,6 @@ int ath_tx_start(struct ieee80211_hw *hw 
     1300@@ -2041,7 +2161,6 @@ int ath_tx_start(struct ieee80211_hw *hw 
    12931301        struct ath_txq *txq = txctl->txq; 
    12941302        struct ath_atx_tid *tid = NULL; 
     
    12981306        int ret; 
    12991307  
    1300 @@ -2069,27 +2186,31 @@ int ath_tx_start(struct ieee80211_hw *hw 
     1308@@ -2069,27 +2188,31 @@ int ath_tx_start(struct ieee80211_hw *hw 
    13011309                ath_txq_unlock(sc, txq); 
    13021310                txq = sc->tx.uapsdq; 
     
    13411349                        dev_kfree_skb_any(skb); 
    13421350                else 
    1343 @@ -2142,7 +2263,7 @@ void ath_tx_cabq(struct ieee80211_hw *hw 
     1351@@ -2142,7 +2265,7 @@ void ath_tx_cabq(struct ieee80211_hw *hw 
    13441352  
    13451353                bf->bf_lastbf = bf; 
     
    13501358                if (bf_tail) 
    13511359                        bf_tail->bf_next = bf; 
    1352 @@ -2189,7 +2310,7 @@ static void ath_tx_complete(struct ath_s 
     1360@@ -2189,7 +2312,7 @@ static void ath_tx_complete(struct ath_s 
    13531361        struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(skb); 
    13541362        struct ath_common *common = ath9k_hw_common(sc->sc_ah); 
     
    13591367  
    13601368        ath_dbg(common, XMIT, "TX complete: skb: %p\n", skb); 
    1361 @@ -2225,21 +2346,7 @@ static void ath_tx_complete(struct ath_s 
     1369@@ -2225,21 +2348,7 @@ static void ath_tx_complete(struct ath_s 
    13621370        spin_unlock_irqrestore(&sc->sc_pm_lock, flags); 
    13631371  
     
    13821390  
    13831391 static void ath_tx_complete_buf(struct ath_softc *sc, struct ath_buf *bf, 
    1384 @@ -2360,8 +2467,7 @@ static void ath_tx_processq(struct ath_s 
     1392@@ -2360,8 +2469,7 @@ static void ath_tx_processq(struct ath_s 
    13851393  
    13861394                if (list_empty(&txq->axq_q)) { 
     
    13921400                } 
    13931401                bf = list_first_entry(&txq->axq_q, struct ath_buf, list); 
    1394 @@ -2375,7 +2481,7 @@ static void ath_tx_processq(struct ath_s 
     1402@@ -2375,7 +2483,7 @@ static void ath_tx_processq(struct ath_s 
    13951403                 * it with the STALE flag. 
    13961404                 */ 
     
    14011409                        if (list_is_last(&bf_held->list, &txq->axq_q)) 
    14021410                                break; 
    1403 @@ -2399,7 +2505,7 @@ static void ath_tx_processq(struct ath_s 
     1411@@ -2399,7 +2507,7 @@ static void ath_tx_processq(struct ath_s 
    14041412                 * however leave the last descriptor back as the holding 
    14051413                 * descriptor for hw. 
     
    14101418                if (!list_is_singular(&lastbf->list)) 
    14111419                        list_cut_position(&bf_head, 
    1412 @@ -2470,7 +2576,7 @@ void ath_tx_edma_tasklet(struct ath_soft 
     1420@@ -2470,7 +2578,7 @@ void ath_tx_edma_tasklet(struct ath_soft 
    14131421                } 
    14141422  
     
    14191427                        ath_tx_return_buffer(sc, bf); 
    14201428                        bf = list_first_entry(fifo_list, struct ath_buf, list); 
    1421 @@ -2492,7 +2598,7 @@ void ath_tx_edma_tasklet(struct ath_soft 
     1429@@ -2492,7 +2600,7 @@ void ath_tx_edma_tasklet(struct ath_soft 
    14221430                                ath_tx_txqaddbuf(sc, txq, &bf_q, true); 
    14231431                        } 
     
    14281436                                list_cut_position(&bf_head, fifo_list, 
    14291437                                                  lastbf->list.prev); 
    1430 @@ -2583,6 +2689,7 @@ void ath_tx_node_init(struct ath_softc * 
     1438@@ -2583,6 +2691,7 @@ void ath_tx_node_init(struct ath_softc * 
    14311439                tid->paused    = false; 
    14321440                tid->active        = false; 
     
    14361444                tid->ac = &an->ac[acno]; 
    14371445        } 
    1438 @@ -2590,6 +2697,7 @@ void ath_tx_node_init(struct ath_softc * 
     1446@@ -2590,6 +2699,7 @@ void ath_tx_node_init(struct ath_softc * 
    14391447        for (acno = 0, ac = &an->ac[acno]; 
    14401448             acno < IEEE80211_NUM_ACS; acno++, ac++) { 
Note: See TracChangeset for help on using the changeset viewer.