Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
CHROMIUM: dmaengine: tegra-adma: fix race between tasklet/terminate_all
tegra_adma_terminate_all will empty the callback list that gets run in the bottom half of the interrupt handler, tegra_adma_tasklet. But if a callback is in progress, it will still run. For example, this can cause a race when pcm_dmaengine closes a stream and frees resources used by the DMA callback. We need to make sure all tasklets are done before returning from tegra_adma_terminate_all to safely close the stream. BUG=chrome-os-partner:46247 TEST=Audio playback Signed-off-by: Jon Hunter <jonathanh@nvidia.com> [cfreeman@nvidia.com: applied manually and added commit message] Signed-off-by: Christopher Freeman <cfreeman@nvidia.com> Change-Id: I5d75990e8efbc008792576bea260a5a4cbe8f2cb Reviewed-on: https://chromium-review.googlesource.com/304920 Commit-Ready: Andrew Bresticker <abrestic@chromium.org> Reviewed-by: Andrew Bresticker <abrestic@chromium.org>
- Loading branch information