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_a…
…ll (take 3) commit 58148c0 ("CHROMIUM: dmaengine: tegra-adma: Fix another race between tasklet/terminate_all") added tasklet_kill which is called from atomic context, causing scheduling while atomic bug. This patch moves the the sync point to device_free_chan_resources which is not atomic. BUG=chrome-os-partner:46247, b:26806769 TEST=Add udelay(10000) in the tasklet before calling the callback to simulate heavy system load. Observe the scheduling while atomic bug. After applying this patch, observe the bug is gone and audio playback works on Ryu. Change-Id: I8d4408364cea492f094e15306c09d153315c9782 Signed-off-by: Ben Zhang <benzh@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/342355 Reviewed-by: Andrew Bresticker <abrestic@chromium.org> (cherry picked from commit 20115e8a450a03cea5ff7b2e5db5fc35081b4637) Reviewed-on: https://chromium-review.googlesource.com/342835 Commit-Queue: Andrew Bresticker <abrestic@chromium.org> Tested-by: Andrew Bresticker <abrestic@chromium.org>
- Loading branch information