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

dmaengine: stm32-mdma: use dev_dbg on non-busy channel spurious it

If interrupt occurs while !chan->busy, it means channel has been disabled
between the raise of the interruption and the read of status and ien, so,
spurious interrupt can be silently discarded.

Signed-off-by: Amelie Delaunay <amelie.delaunay@foss.st.com>
Link: https://lore.kernel.org/r/20220504155322.121431-4-amelie.delaunay@foss.st.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>

authored by

Amelie Delaunay and committed by
Vinod Koul
27638269 da3b8ddb

+6 -3
+6 -3
drivers/dma/stm32-mdma.c
··· 1345 1345 1346 1346 if (!(status & ien)) { 1347 1347 spin_unlock(&chan->vchan.lock); 1348 - dev_warn(chan2dev(chan), 1349 - "spurious it (status=0x%04x, ien=0x%04x)\n", 1350 - status, ien); 1348 + if (chan->busy) 1349 + dev_warn(chan2dev(chan), 1350 + "spurious it (status=0x%04x, ien=0x%04x)\n", status, ien); 1351 + else 1352 + dev_dbg(chan2dev(chan), 1353 + "spurious it (status=0x%04x, ien=0x%04x)\n", status, ien); 1351 1354 return IRQ_NONE; 1352 1355 } 1353 1356