Commit 462237d2 authored by Louis Chauvet's avatar Louis Chauvet Committed by Vinod Koul
Browse files

dmaengine: xilinx: xdma: Fix data synchronisation in xdma_channel_isr()



Requests the vchan lock before using xdma->stop_request.

Fixes: 6a40fb82 ("dmaengine: xilinx: xdma: Fix synchronization issue")
Cc: stable@vger.kernel.org
Signed-off-by: default avatarLouis Chauvet <louis.chauvet@bootlin.com>
Link: https://lore.kernel.org/r/20240607-xdma-fixes-v2-1-0282319ce345@bootlin.com


Signed-off-by: default avatarVinod Koul <vkoul@kernel.org>
parent 1613e604
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -885,11 +885,11 @@ static irqreturn_t xdma_channel_isr(int irq, void *dev_id)
	u32 st;
	bool repeat_tx;

	spin_lock(&xchan->vchan.lock);

	if (xchan->stop_requested)
		complete(&xchan->last_interrupt);

	spin_lock(&xchan->vchan.lock);

	/* get submitted request */
	vd = vchan_next_desc(&xchan->vchan);
	if (!vd)