ptdma: pt_core_execute_cmd() should use spinlock
authorEric Pilmore <epilmore@gigaio.com>
Thu, 19 Jan 2023 03:39:08 +0000 (19:39 -0800)
committerVinod Koul <vkoul@kernel.org>
Thu, 19 Jan 2023 13:29:34 +0000 (18:59 +0530)
commit95e5fda3b5f9ed8239b145da3fa01e641cf5d53c
treeafce5d3b1023c71cdefca5c03800da9d9adfac93
parenta7a7ee6f5a019ad72852c001abbce50d35e992f2
ptdma: pt_core_execute_cmd() should use spinlock

The interrupt handler (pt_core_irq_handler()) of the ptdma
driver can be called from interrupt context. The code flow
in this function can lead down to pt_core_execute_cmd() which
will attempt to grab a mutex, which is not appropriate in
interrupt context and ultimately leads to a kernel panic.
The fix here changes this mutex to a spinlock, which has
been verified to resolve the issue.

Fixes: fa5d823b16a9 ("dmaengine: ptdma: Initial driver for the AMD PTDMA")
Signed-off-by: Eric Pilmore <epilmore@gigaio.com>
Link: https://lore.kernel.org/r/20230119033907.35071-1-epilmore@gigaio.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/ptdma/ptdma-dev.c
drivers/dma/ptdma/ptdma.h