dmaengine: ti: k3-udma: Use cap_mask directly from dma_device structure instead of...
authorYemike Abhilash Chandra <y-abhilashchandra@ti.com>
Thu, 17 Apr 2025 07:55:21 +0000 (13:25 +0530)
committerVinod Koul <vkoul@kernel.org>
Thu, 17 Apr 2025 15:03:34 +0000 (20:33 +0530)
commit8ca9590c39b69b55a8de63d2b21b0d44f523b43a
treedcecae49e5a1b3a151474b13349fec5668db9e3a
parentdf180e65305f8c1e020d54bfc2132349fd693de1
dmaengine: ti: k3-udma: Use cap_mask directly from dma_device structure instead of a local copy

Currently, a local dma_cap_mask_t variable is used to store device
cap_mask within udma_of_xlate(). However, the DMA_PRIVATE flag in
the device cap_mask can get cleared when the last channel is released.
This can happen right after storing the cap_mask locally in
udma_of_xlate(), and subsequent dma_request_channel() can fail due to
mismatch in the cap_mask. Fix this by removing the local dma_cap_mask_t
variable and directly using the one from the dma_device structure.

Fixes: 25dcb5dd7b7c ("dmaengine: ti: New driver for K3 UDMA")
Cc: stable@vger.kernel.org
Signed-off-by: Vaishnav Achath <vaishnav.a@ti.com>
Acked-by: Peter Ujfalusi <peter.ujfalusi@gmail.com>
Reviewed-by: Udit Kumar <u-kumar1@ti.com>
Signed-off-by: Yemike Abhilash Chandra <y-abhilashchandra@ti.com>
Link: https://lore.kernel.org/r/20250417075521.623651-1-y-abhilashchandra@ti.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/ti/k3-udma.c