mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-28 13:22:57 +00:00
bnxt_en: Fix TX ring indexing logic
Two spots were missed when modifying the TX ring indexing logic.
The use of unmasked TX index in bnxt_tx_int() will cause unnecessary
__bnxt_tx_int() calls. The same issue in bnxt_tx_int_xdp() can
result in illegal array index.
Fixes: 6d1add9553
("bnxt_en: Modify TX ring indexing logic.")
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Link: https://lore.kernel.org/r/20231212005122.2401-4-michael.chan@broadcom.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
7fb17a0c18
commit
18fe0a383c
2 changed files with 2 additions and 2 deletions
|
@ -781,7 +781,7 @@ static void bnxt_tx_int(struct bnxt *bp, struct bnxt_napi *bnapi, int budget)
|
|||
int i;
|
||||
|
||||
bnxt_for_each_napi_tx(i, bnapi, txr) {
|
||||
if (txr->tx_hw_cons != txr->tx_cons)
|
||||
if (txr->tx_hw_cons != RING_TX(bp, txr->tx_cons))
|
||||
__bnxt_tx_int(bp, txr, budget);
|
||||
}
|
||||
bnapi->events &= ~BNXT_TX_CMP_EVENT;
|
||||
|
|
|
@ -173,7 +173,7 @@ void bnxt_tx_int_xdp(struct bnxt *bp, struct bnxt_napi *bnapi, int budget)
|
|||
bnapi->events &= ~BNXT_TX_CMP_EVENT;
|
||||
WRITE_ONCE(txr->tx_cons, tx_cons);
|
||||
if (rx_doorbell_needed) {
|
||||
tx_buf = &txr->tx_buf_ring[last_tx_cons];
|
||||
tx_buf = &txr->tx_buf_ring[RING_TX(bp, last_tx_cons)];
|
||||
bnxt_db_write(bp, &rxr->rx_db, tx_buf->rx_prod);
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue