linux/drivers/dma/sh
Niklas Söderlund a1ed64efc5 dmaengine: rcar-dmac: wait for ISR to finish before freeing resources
This fixes a race condition where the channel resources could be freed
before the ISR had finished running resulting in a NULL pointer
reference from the ISR.

[  167.148934] Unable to handle kernel NULL pointer dereference at virtual address 00000000
[  167.157051] pgd = ffff80003c641000
[  167.160449] [00000000] *pgd=000000007c507003, *pud=000000007c4ff003, *pmd=0000000000000000
[  167.168719] Internal error: Oops: 96000046 [#1] PREEMPT SMP
[  167.174289] Modules linked in:
[  167.177348] CPU: 3 PID: 10547 Comm: dma_ioctl Not tainted 4.11.0-rc1-00001-g8d92afddc2f6633a #73
[  167.186131] Hardware name: Renesas Salvator-X board based on r8a7795 (DT)
[  167.192917] task: ffff80003a411a00 task.stack: ffff80003bcd4000
[  167.198850] PC is at rcar_dmac_chan_prep_sg+0xe0/0x400
[  167.203985] LR is at rcar_dmac_chan_prep_sg+0x48/0x400

Based of previous work by:
    Hiroyuki Yokoyama <hiroyuki.yokoyama.vx@renesas.com>.

Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
2017-05-19 14:55:23 +05:30
..
Kconfig dmaengine: sh: Use ARCH_RENESAS 2016-02-08 08:48:08 +05:30
Makefile dmaengine: sh: Remove unused R-Car HPB-DMAC driver 2015-12-10 09:43:33 +05:30
rcar-dmac.c dmaengine: rcar-dmac: wait for ISR to finish before freeing resources 2017-05-19 14:55:23 +05:30
shdma-arm.h
shdma-base.c dmaengine: sh_shdma-base: convert callback to helper function 2016-08-08 08:11:43 +05:30
shdma-of.c dmaengine: Remove .owner field for driver 2014-11-06 11:54:18 +05:30
shdma-r8a73a4.c dmaengine: shdma: r8a73a4: Make dma_ts_shift[] static 2015-05-25 22:33:07 +05:30
shdma.h
shdmac.c dmaengine: Remove site specific OOM error messages on kzalloc 2016-06-21 21:35:00 +05:30
sudmac.c dmaengine: Remove site specific OOM error messages on kzalloc 2016-06-21 21:35:00 +05:30
usb-dmac.c dmaengine: usb-dmac: remove unused ‘uchan’ 2016-12-12 22:25:21 +05:30