Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dmaengine: axi-dmac: Return IRQ_NONE if no IRQs are pending

Return IRQ_NONE in the interrupt handler when it is called but no IRQs are
pending. This allows the system to recover in case of an interrupt storm
e.g. due to a wrong interrupt configuration setup.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>

authored by

Lars-Peter Clausen and committed by
Vinod Koul
71831f65 50dc60a2

+3
+3
drivers/dma/dma-axi-dmac.c
··· 270 270 unsigned int pending; 271 271 272 272 pending = axi_dmac_read(dmac, AXI_DMAC_REG_IRQ_PENDING); 273 + if (!pending) 274 + return IRQ_NONE; 275 + 273 276 axi_dmac_write(dmac, AXI_DMAC_REG_IRQ_PENDING, pending); 274 277 275 278 spin_lock(&dmac->chan.vchan.lock);