]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/blobdiff - drivers/net/ethernet/broadcom/bnxt/bnxt.c
bnxt_en: Fix RX consumer index logic in the error path.
[mirror_ubuntu-hirsute-kernel.git] / drivers / net / ethernet / broadcom / bnxt / bnxt.c
index 11839f086f2984d59f2f5a763bf3b1df5136f1a2..f3c659bc6bb688bfdea8df46784085b5b8bcf553 100644 (file)
@@ -1731,14 +1731,16 @@ static int bnxt_rx_pkt(struct bnxt *bp, struct bnxt_cp_ring_info *cpr,
 
        cons = rxcmp->rx_cmp_opaque;
        if (unlikely(cons != rxr->rx_next_cons)) {
-               int rc1 = bnxt_discard_rx(bp, cpr, raw_cons, rxcmp);
+               int rc1 = bnxt_discard_rx(bp, cpr, &tmp_raw_cons, rxcmp);
 
                /* 0xffff is forced error, don't print it */
                if (rxr->rx_next_cons != 0xffff)
                        netdev_warn(bp->dev, "RX cons %x != expected cons %x\n",
                                    cons, rxr->rx_next_cons);
                bnxt_sched_reset(bp, rxr);
-               return rc1;
+               if (rc1)
+                       return rc1;
+               goto next_rx_no_prod_no_len;
        }
        rx_buf = &rxr->rx_buf_ring[cons];
        data = rx_buf->data;