bnxt_en: Reduce unnecessary message log during RX errors.
authorMichael Chan <michael.chan@broadcom.com>
Sun, 4 Oct 2020 19:23:00 +0000 (15:23 -0400)
committerDavid S. Miller <davem@davemloft.net>
Sun, 4 Oct 2020 21:41:05 +0000 (14:41 -0700)
There is logic in the RX path to detect unexpected handles in the
RX completion.  We'll print a warning and schedule a reset.  The
next expected handle is then set to 0xffff which is guaranteed to
not match any valid handle.  This will force all remaining packets in
the ring to be discarded before the reset.  There can be hundreds of
these packets remaining in the ring and there is no need to print the
warnings for these forced errors.

Reviewed-by: Pavan Chebbi <pavan.chebbi@broadcom.com>
Reviewed-by: Edwin Peer <edwin.peer@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bnxt/bnxt.c

index 0845884..1e67640 100644 (file)
@@ -1741,8 +1741,10 @@ static int bnxt_rx_pkt(struct bnxt *bp, struct bnxt_cp_ring_info *cpr,
        if (unlikely(cons != rxr->rx_next_cons)) {
                int rc1 = bnxt_discard_rx(bp, cpr, raw_cons, rxcmp);
 
-               netdev_warn(bp->dev, "RX cons %x != expected cons %x\n",
-                           cons, rxr->rx_next_cons);
+               /* 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;
        }