dmaengine: zynqmp_dma: fix lockdep warning in tasklet
authorMichael Tretter <m.tretter@pengutronix.de>
Thu, 26 Aug 2021 09:47:42 +0000 (11:47 +0200)
committerVinod Koul <vkoul@kernel.org>
Fri, 1 Oct 2021 11:56:30 +0000 (17:26 +0530)
commit9558cf4ad07e8913c14e83959212ae8fdf60cfea
treed1d24df578fcc5ed370762b64dd3a94dae13b5df
parent193a750df59580ddda6779290fa3898ba3216d3c
dmaengine: zynqmp_dma: fix lockdep warning in tasklet

The tasklet that handles the completed dma transfers uses spin_unlock
for unlocking a spin lock that was previously locked with
spin_lock_irqsave.

This caused the following lockdep warning about an inconsistent lock
state:

inconsistent {HARDIRQ-ON-W} -> {IN-HARDIRQ-W} usage.

We must use spin_lock_irqsave, because it is possible to queue DMA
transfers from an irq handler.

Replace the spin_unlock and spin_lock by spin_unlock_irqrestore and
spin_lock_irqsave.

Signed-off-by: Michael Tretter <m.tretter@pengutronix.de>
Link: https://lore.kernel.org/r/20210826094742.1302009-8-m.tretter@pengutronix.de
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/xilinx/zynqmp_dma.c