Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 569432ef authored by Viresh Kumar's avatar Viresh Kumar Committed by Vinod Koul
Browse files

dw_dmac: Calling dwc_scan_descriptors from dwc_tx_status() after taking lock



Lock must be taken before calling dwc_scan_descriptors, as this may
access/modify shared data and queues. dwc_tx_status wasn't taking lock before
calling this routine. This patch add code that takes lock before calling
dwc_scan_descriptors.

Signed-off-by: default avatarViresh Kumar <viresh.kumar@st.com>
Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
parent f336e42f
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -836,7 +836,9 @@ dwc_tx_status(struct dma_chan *chan,

	ret = dma_async_is_complete(cookie, last_complete, last_used);
	if (ret != DMA_SUCCESS) {
		spin_lock_bh(&dwc->lock);
		dwc_scan_descriptors(to_dw_dma(chan->device), dwc);
		spin_unlock_bh(&dwc->lock);

		last_complete = dwc->completed;
		last_used = chan->cookie;