summaryrefslogtreecommitdiff
path: root/drivers/sbus
diff options
context:
space:
mode:
authorYannick Vignon <yannick.vignon@nxp.com>2021-05-06 17:33:12 +0300
committerJakub Kicinski <kuba@kernel.org>2021-05-08 01:53:57 +0300
commit8a7cb245cf28cb3e541e0d6c8624b95d079e155b (patch)
treea8644fbe9e589e4e794f860d14581115af6ae165 /drivers/sbus
parent578c18eff1627d6a911f08f4cf351eca41fdcc7d (diff)
downloadlinux-8a7cb245cf28cb3e541e0d6c8624b95d079e155b.tar.xz
net: stmmac: Do not enable RX FIFO overflow interrupts
The RX FIFO overflows when the system is not able to process all received packets and they start accumulating (first in the DMA queue in memory, then in the FIFO). An interrupt is then raised for each overflowing packet and handled in stmmac_interrupt(). This is counter-productive, since it brings the system (or more likely, one CPU core) to its knees to process the FIFO overflow interrupts. stmmac_interrupt() handles overflow interrupts by writing the rx tail ptr into the corresponding hardware register (according to the MAC spec, this has the effect of restarting the MAC DMA). However, without freeing any rx descriptors, the DMA stops right away, and another overflow interrupt is raised as the FIFO overflows again. Since the DMA is already restarted at the end of stmmac_rx_refill() after freeing descriptors, disabling FIFO overflow interrupts and the corresponding handling code has no side effect, and eliminates the interrupt storm when the RX FIFO overflows. Signed-off-by: Yannick Vignon <yannick.vignon@nxp.com> Link: https://lore.kernel.org/r/20210506143312.20784-1-yannick.vignon@oss.nxp.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers/sbus')
0 files changed, 0 insertions, 0 deletions