dmaengine: rcar-dmac: fixup spinlock in rcar-dmac
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Thu, 21 May 2015 03:48:38 +0000 (03:48 +0000)
committerMark Brown <broonie@kernel.org>
Fri, 22 May 2015 13:14:21 +0000 (14:14 +0100)
commitd23c9a0a5c237210bccb82a2e9dc0d26e75920ee
tree03d2326d7ab8790b5ac681d8947a46c9885f0cfe
parentb787f68c36d49bb1d9236f403813641efa74a031
dmaengine: rcar-dmac: fixup spinlock in rcar-dmac

Current rcar-dmac driver is using spin_lock_irq() / spin_unlock_irq()
in some functions. But, some other driver might call DMAEngine API
during interrupt disabled. In such case, rcar-dmac side spin_unlock_irq()
forcefully allows all interrupts. Therefore, other driver receives
unexpected interruption, and its exclusive access control will be broken.
This patch replaces spin_lock_irq() to spin_lock_irqsave(),
and spin_unlock_irq() to spin_unlock_irqrestore().

Reported-by: Cao Minh Hiep <cm-hiep@jinso.co.jp>
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Tested-by: Keita Kobayashi <keita.kobayashi.ym@renesas.com>
Acked-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/dma/sh/rcar-dmac.c