linux-yocto/drivers/net/ethernet/xilinx
Suraj Gupta 5ccdcdf186 net: xilinx: axienet: Enqueue Tx packets in dql before dmaengine starts
Enqueue packets in dql after dma engine starts causes race condition.
Tx transfer starts once dma engine is started and may execute dql dequeue
in completion before it gets queued. It results in following kernel crash
while running iperf stress test:

kernel BUG at lib/dynamic_queue_limits.c:99!
<snip>
Internal error: Oops - BUG: 00000000f2000800 [#1] SMP
pc : dql_completed+0x238/0x248
lr : dql_completed+0x3c/0x248

Call trace:
  dql_completed+0x238/0x248
  axienet_dma_tx_cb+0xa0/0x170
  xilinx_dma_do_tasklet+0xdc/0x290
  tasklet_action_common+0xf8/0x11c
  tasklet_action+0x30/0x3c
  handle_softirqs+0xf8/0x230
<snip>

Start dmaengine after enqueue in dql fixes the crash.

Fixes: 6a91b846af ("net: axienet: Introduce dmaengine support")
Signed-off-by: Suraj Gupta <suraj.gupta2@amd.com>
Link: https://patch.msgid.link/20241030062533.2527042-2-suraj.gupta2@amd.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2024-11-03 14:35:11 -08:00
..
Kconfig net: axienet: Introduce dmaengine support 2023-11-20 17:52:22 -08:00
ll_temac_main.c net: ll_temac: platform_get_resource replaced by wrong function 2024-03-25 19:46:56 -07:00
ll_temac_mdio.c net: Explicitly include correct DT includes 2023-07-27 20:33:16 -07:00
ll_temac.h net: Explicitly include correct DT includes 2023-07-27 20:33:16 -07:00
Makefile
xilinx_axienet_main.c net: xilinx: axienet: Enqueue Tx packets in dql before dmaengine starts 2024-11-03 14:35:11 -08:00
xilinx_axienet_mdio.c net: axienet: Fix kernel doc warnings 2024-03-29 12:41:22 -07:00
xilinx_axienet.h net: xilinx: axienet: Remove unused checksum variables 2024-09-10 18:34:50 -07:00
xilinx_emaclite.c net: emaclite: Use devm_platform_get_and_ioremap_resource() in xemaclite_of_probe() 2024-02-09 12:27:43 -08:00