Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -6381,21 +6381,23 @@ static void mvpp2_rx_error(struct mvpp2_port *port,
{
	u32 status = mvpp2_rxdesc_status_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) {
	case MVPP2_RXD_ERR_CRC:
		netdev_err(port->dev, "bad rx status %08x (crc error), size=%zu\n",
			   status, sz);
		err_str = "crc";
		break;
	case MVPP2_RXD_ERR_OVERRUN:
		netdev_err(port->dev, "bad rx status %08x (overrun error), size=%zu\n",
			   status, sz);
		err_str = "overrun";
		break;
	case MVPP2_RXD_ERR_RESOURCE:
		netdev_err(port->dev, "bad rx status %08x (resource error), size=%zu\n",
			   status, sz);
		err_str = "resource";
		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 */