mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-12-11 16:00:50 -07:00
When we receive a packet from the xilinx_axienet and then try to s2mem
through the xilinx_axidma, if the descriptor ring buffer is full in the
xilinx axidma driver, we’ll assert the DMASR.HALTED in the
function : stream_process_s2mem and return 0. In the end, we’ll be stuck in
an infinite loop in axienet_eth_rx_notify.
This patch checks the DMASR.HALTED state when we try to push data
from xilinx axi-enet to xilinx axi-dma. When the DMASR.HALTED is asserted,
we will not keep pushing the data and then prevent the infinte loop.
Signed-off-by: Tommy Wu <tommy.wu@sifive.com>
Reviewed-by: Edgar E. Iglesias <edgar@zeroasic.com>
Reviewed-by: Frank Chang <frank.chang@sifive.com>
Message-id: 20230519062137.1251741-1-tommy.wu@sifive.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
(cherry picked from commit
|
||
|---|---|---|
| .. | ||
| bcm2835_dma.c | ||
| etraxfs_dma.c | ||
| i8257.c | ||
| i82374.c | ||
| Kconfig | ||
| meson.build | ||
| omap_dma.c | ||
| pl080.c | ||
| pl330.c | ||
| pxa2xx_dma.c | ||
| rc4030.c | ||
| sifive_pdma.c | ||
| soc_dma.c | ||
| sparc32_dma.c | ||
| trace-events | ||
| trace.h | ||
| xilinx_axidma.c | ||
| xlnx-zdma.c | ||
| xlnx-zynq-devcfg.c | ||
| xlnx_csu_dma.c | ||
| xlnx_dpdma.c | ||