ath9k: fix regression in multicast buffering fix

Update the more data flag on the last frame, but tx from the first frame
on.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
Felix Fietkau 2017-07-25 19:47:48 +02:00
parent 35868234e7
commit ea72f22bdf

View file

@ -19,7 +19,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
struct ath_buf *bf_tail = NULL; struct ath_buf *bf_tail = NULL;
struct ath_buf *bf; struct ath_buf *bf;
LIST_HEAD(bf_q); LIST_HEAD(bf_q);
@@ -2495,14 +2494,8 @@ void ath_tx_cabq(struct ieee80211_hw *hw @@ -2495,15 +2494,10 @@ void ath_tx_cabq(struct ieee80211_hw *hw
if (list_empty(&bf_q)) if (list_empty(&bf_q))
return; return;
@ -34,5 +34,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+ bf = list_last_entry(&bf_q, struct ath_buf, list); + bf = list_last_entry(&bf_q, struct ath_buf, list);
+ ath9k_set_moredata(sc, bf, false); + ath9k_set_moredata(sc, bf, false);
+ bf = list_first_entry(&bf_q, struct ath_buf, list);
ath_txq_lock(sc, txctl.txq); ath_txq_lock(sc, txctl.txq);
ath_tx_fill_desc(sc, bf, txctl.txq, 0); ath_tx_fill_desc(sc, bf, txctl.txq, 0);
ath_tx_txqaddbuf(sc, txctl.txq, &bf_q, false);