summaryrefslogtreecommitdiff
path: root/package/madwifi/patches/343-txqueue_races.patch
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2008-04-21 03:45:22 +0000
committerFelix Fietkau <nbd@openwrt.org>2008-04-21 03:45:22 +0000
commit3e03e66d7a25aa8a73d40874e74d0e28d41de505 (patch)
tree0e2538c161219451e5f476848ef8c663eb946faf /package/madwifi/patches/343-txqueue_races.patch
parent13c5a1b2d5e0aaa88782a6e9d15862cc43a1ae0b (diff)
downloadmtk-20170518-3e03e66d7a25aa8a73d40874e74d0e28d41de505.zip
mtk-20170518-3e03e66d7a25aa8a73d40874e74d0e28d41de505.tar.gz
mtk-20170518-3e03e66d7a25aa8a73d40874e74d0e28d41de505.tar.bz2
reorder patches
SVN-Revision: 10898
Diffstat (limited to 'package/madwifi/patches/343-txqueue_races.patch')
-rw-r--r--package/madwifi/patches/343-txqueue_races.patch38
1 files changed, 38 insertions, 0 deletions
diff --git a/package/madwifi/patches/343-txqueue_races.patch b/package/madwifi/patches/343-txqueue_races.patch
new file mode 100644
index 0000000..be6b488
--- /dev/null
+++ b/package/madwifi/patches/343-txqueue_races.patch
@@ -0,0 +1,38 @@
+Merged from madwifi trunk r3551, r3552
+
+Index: madwifi-trunk-r3314/ath/if_ath.c
+===================================================================
+--- madwifi-trunk-r3314.orig/ath/if_ath.c 2008-04-20 23:18:52.000000000 +0200
++++ madwifi-trunk-r3314/ath/if_ath.c 2008-04-20 23:20:36.000000000 +0200
+@@ -8245,6 +8245,17 @@
+ goto bf_fail;
+ }
+
++ /* We make sure we don't remove the TX descriptor on
++ * which the HW is pointing since it contains the
++ * ds_link field, except if this is the last TX
++ * descriptor in the queue */
++
++ if ((txq->axq_depth > 1) &&
++ (bf->bf_daddr == ath_hal_gettxbuf(ah, txq->axq_qnum))) {
++ ATH_TXQ_UNLOCK_IRQ_EARLY(txq);
++ goto bf_fail;
++ }
++
+ ATH_TXQ_REMOVE_HEAD(txq, bf_list);
+ ATH_TXQ_UNLOCK_IRQ(txq);
+
+Index: madwifi-trunk-r3314/ath/if_athvar.h
+===================================================================
+--- madwifi-trunk-r3314.orig/ath/if_athvar.h 2008-04-20 23:18:48.000000000 +0200
++++ madwifi-trunk-r3314/ath/if_athvar.h 2008-04-20 23:21:12.000000000 +0200
+@@ -586,7 +586,8 @@
+ } while (0)
+ #define ATH_TXQ_REMOVE_HEAD(_tq, _field) do { \
+ STAILQ_REMOVE_HEAD(&(_tq)->axq_q, _field); \
+- (_tq)->axq_depth--; \
++ if (--(_tq)->axq_depth <= 0) \
++ (_tq)->axq_link = NULL; \
+ } while (0)
+ /* move buffers from MCASTQ to CABQ */
+ #define ATH_TXQ_MOVE_MCASTQ(_tqs,_tqd) do { \