close race between ath_tx_start and ath_tx_processq
Reviewed by: apatti MFC after: 1 week
This commit is contained in:
parent
14d5e8363f
commit
1539af1ef5
@ -3766,7 +3766,6 @@ ath_tx_processq(struct ath_softc *sc, struct ath_txq *txq)
|
|||||||
txq->axq_intrcnt = 0; /* reset periodic desc intr count */
|
txq->axq_intrcnt = 0; /* reset periodic desc intr count */
|
||||||
bf = STAILQ_FIRST(&txq->axq_q);
|
bf = STAILQ_FIRST(&txq->axq_q);
|
||||||
if (bf == NULL) {
|
if (bf == NULL) {
|
||||||
txq->axq_link = NULL;
|
|
||||||
ATH_TXQ_UNLOCK(txq);
|
ATH_TXQ_UNLOCK(txq);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -3782,6 +3781,8 @@ ath_tx_processq(struct ath_softc *sc, struct ath_txq *txq)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
ATH_TXQ_REMOVE_HEAD(txq, bf_list);
|
ATH_TXQ_REMOVE_HEAD(txq, bf_list);
|
||||||
|
if (txq->axq_depth == 0)
|
||||||
|
txq->axq_link = NULL;
|
||||||
ATH_TXQ_UNLOCK(txq);
|
ATH_TXQ_UNLOCK(txq);
|
||||||
|
|
||||||
ni = bf->bf_node;
|
ni = bf->bf_node;
|
||||||
|
Loading…
Reference in New Issue
Block a user