Commit 934e0f83 authored by Yan Markman's avatar Yan Markman Committed by David S. Miller

net: mvpp2: print rx error with rate-limit

Prevent flood of RX error prints during heavy traffic with weak signal
in link by checking net_ratelimit() before using netdev_err().
Signed-off-by: default avatarYan Markman <ymarkman@marvell.com>
[Antoine: small rework, commit message]
Signed-off-by: default avatarAntoine Tenart <antoine.tenart@bootlin.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 5b0ab2f4
...@@ -6381,21 +6381,23 @@ static void mvpp2_rx_error(struct mvpp2_port *port, ...@@ -6381,21 +6381,23 @@ static void mvpp2_rx_error(struct mvpp2_port *port,
{ {
u32 status = mvpp2_rxdesc_status_get(port, rx_desc); u32 status = mvpp2_rxdesc_status_get(port, rx_desc);
size_t sz = mvpp2_rxdesc_size_get(port, rx_desc); size_t sz = mvpp2_rxdesc_size_get(port, rx_desc);
char *err_str = NULL;
switch (status & MVPP2_RXD_ERR_CODE_MASK) { switch (status & MVPP2_RXD_ERR_CODE_MASK) {
case MVPP2_RXD_ERR_CRC: case MVPP2_RXD_ERR_CRC:
netdev_err(port->dev, "bad rx status %08x (crc error), size=%zu\n", err_str = "crc";
status, sz);
break; break;
case MVPP2_RXD_ERR_OVERRUN: case MVPP2_RXD_ERR_OVERRUN:
netdev_err(port->dev, "bad rx status %08x (overrun error), size=%zu\n", err_str = "overrun";
status, sz);
break; break;
case MVPP2_RXD_ERR_RESOURCE: case MVPP2_RXD_ERR_RESOURCE:
netdev_err(port->dev, "bad rx status %08x (resource error), size=%zu\n", err_str = "resource";
status, sz);
break; break;
} }
if (err_str && net_ratelimit())
netdev_err(port->dev,
"bad rx status %08x (%s error), size=%zu\n",
status, err_str, sz);
} }
/* Handle RX checksum offload */ /* Handle RX checksum offload */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment