mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-07 15:18:15 +00:00
gianfar: Fix Rx BSY error handling
The Rx BSY error interrupt indicates that a frame was received and discarded due to lack of buffers, so it's a rx ring overflow condition and has nothing to do with with bad rx packets. Use the right counter. BSY conditions happen when the SoC is under performance stress. Doing *more* work in stress situations by trying to schedule NAPI is not a good idea as the stressed system becomes still more stressed. The Rx interrupt is already at work making sure the NAPI is scheduled. So calling gfar_receive() here does not help. This issue was present since day 1. Signed-off-by: Claudiu Manoil <claudiu.manoil@freescale.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
15bf176db1
commit
1de65a5ea3
1 changed files with 1 additions and 3 deletions
|
@ -3462,11 +3462,9 @@ static irqreturn_t gfar_error(int irq, void *grp_id)
|
||||||
netif_dbg(priv, tx_err, dev, "Transmit Error\n");
|
netif_dbg(priv, tx_err, dev, "Transmit Error\n");
|
||||||
}
|
}
|
||||||
if (events & IEVENT_BSY) {
|
if (events & IEVENT_BSY) {
|
||||||
dev->stats.rx_errors++;
|
dev->stats.rx_over_errors++;
|
||||||
atomic64_inc(&priv->extra_stats.rx_bsy);
|
atomic64_inc(&priv->extra_stats.rx_bsy);
|
||||||
|
|
||||||
gfar_receive(irq, grp_id);
|
|
||||||
|
|
||||||
netif_dbg(priv, rx_err, dev, "busy error (rstat: %x)\n",
|
netif_dbg(priv, rx_err, dev, "busy error (rstat: %x)\n",
|
||||||
gfar_read(®s->rstat));
|
gfar_read(®s->rstat));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue