ath9k: fix a minor rcu issue
authorFelix Fietkau <nbd@openwrt.org>
Sat, 22 Jun 2013 13:59:55 +0000 (13:59 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Sat, 22 Jun 2013 13:59:55 +0000 (13:59 +0000)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 37013

package/kernel/mac80211/patches/300-pending_work.patch

index bd21e534058318b641ca2bcf409b195b06b8f8cc..11be868b38a1dc4a3d5c952d34982f56de5d2421 100644 (file)
        struct mutex mtx;
 --- a/drivers/net/wireless/ath/ath9k/xmit.c
 +++ b/drivers/net/wireless/ath/ath9k/xmit.c
-@@ -1778,9 +1778,13 @@ static void ath_tx_txqaddbuf(struct ath_
+@@ -1673,6 +1673,8 @@ void ath_txq_schedule(struct ath_softc *
+           txq->axq_ampdu_depth >= ATH_AGGR_MIN_QDEPTH)
+               return;
++      rcu_read_lock();
++
+       ac = list_first_entry(&txq->axq_acq, struct ath_atx_ac, list);
+       last_ac = list_entry(txq->axq_acq.prev, struct ath_atx_ac, list);
+@@ -1711,8 +1713,10 @@ void ath_txq_schedule(struct ath_softc *
+               if (ac == last_ac ||
+                   txq->axq_ampdu_depth >= ATH_AGGR_MIN_QDEPTH)
+-                      return;
++                      break;
+       }
++
++      rcu_read_unlock();
+ }
+ /***********/
+@@ -1778,9 +1782,13 @@ static void ath_tx_txqaddbuf(struct ath_
        }
  
        if (!internal) {