]> git.baikalelectronics.ru Git - kernel.git/commit
net: lantiq: disable interrupt before sheduling NAPI
authorAleksander Jan Bajkowski <olek2@wp.pl>
Tue, 8 Jun 2021 21:21:07 +0000 (23:21 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 9 Jun 2021 02:16:32 +0000 (19:16 -0700)
commit769ef4a0f87c69efe2249d663816fdb4d9a7192e
treef9c56ac832d6312aea2dd3c9750760b1bf73dcad
parenta9ee4447b0514eac076810ed763b0ed69c2b17fa
net: lantiq: disable interrupt before sheduling NAPI

This patch fixes TX hangs with threaded NAPI enabled. The scheduled
NAPI seems to be executed in parallel with the interrupt on second
thread. Sometimes it happens that ltq_dma_disable_irq() is executed
after xrx200_tx_housekeeping(). The symptom is that TX interrupts
are disabled in the DMA controller. As a result, the TX hangs after
a few seconds of the iperf test. Scheduling NAPI after disabling
interrupts fixes this issue.

Tested on Lantiq xRX200 (BT Home Hub 5A).

Fixes: 453fbf6887cf ("net: lantiq: Disable IRQs only if NAPI gets scheduled ")
Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/lantiq_xrx200.c