Re: [PATCH] dmaengine: pl330: Acquire dmac's spinlock in pl330_tx_status
From: Vinod Koul
Date: Fri Sep 09 2016 - 07:44:57 EST
On Tue, Aug 23, 2016 at 05:16:55PM +0800, Hsin-Yu Chao wrote:
> There is a racing when accessing dmac thread in pl330_tx_status that
> the pl330_update is handling active request at the same time and
> changing the status of descriptors. This could cause an invalid
> transferred count from BUSY descriptor added up to the residual number.
> Fix the bug by using the dmac's spinlock in pl330_tx_status to protect
> thread resources from changing.
> Note that the nested order of holding dmac's and dma_chan's spinlock is
> consistent with the rest of the driver: dma_chan first and then dmac,
> so it is safe from deadlock scenario.