OSDN Git Service

dmaengine: tegra-apb: Improve DMA synchronization
authorDmitry Osipenko <digetx@gmail.com>
Thu, 19 Mar 2020 21:23:21 +0000 (00:23 +0300)
committerVinod Koul <vkoul@kernel.org>
Mon, 23 Mar 2020 06:36:24 +0000 (12:06 +0530)
commit6697255f239f5c04fcd6b819c0d35ae05bbf808c
treea12b493edca015d1c30d63d6ef0d8c055760587b
parent6de88ea4ff665040e62e3b3ffea01e388ae09ac0
dmaengine: tegra-apb: Improve DMA synchronization

Boot CPU0 always handles DMA interrupts and under some rare circumstances
it could stuck in uninterruptible state for a significant time (like in a
case of KASAN + NFS root). In this case sibling CPU, which waits for DMA
transfer completion, will get a DMA transfer timeout. In order to handle
this rare condition, interrupt status needs to be polled until interrupt
is handled.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Link: https://lore.kernel.org/r/20200319212321.3297-2-digetx@gmail.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/tegra20-apb-dma.c