linux/drivers/dma
Adrian Larumbe 7dd2dd4ff9 dmaengine: xilinx_dma: Fix read-after-free bug when terminating transfers
When user calls dmaengine_terminate_sync, the driver will clean up any
remaining descriptors for all the pending or active transfers that had
previously been submitted. However, this might happen whilst the tasklet is
invoking the DMA callback for the last finished transfer, so by the time it
returns and takes over the channel's spinlock, the list of completed
descriptors it was traversing is no longer valid. This leads to a
read-after-free situation.

Fix it by signalling whether a user-triggered termination has happened by
means of a boolean variable.

Signed-off-by: Adrian Larumbe <adrian.martinezlarumbe@imgtec.com>
Link: https://lore.kernel.org/r/20210706234338.7696-3-adrian.martinezlarumbe@imgtec.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
2021-07-14 10:39:34 +05:30
..
bestcomm
dw dmaengine: dw: Make it dependent to HAS_IOMEM 2021-04-12 14:54:45 +05:30
dw-axi-dmac dmaengine: dw-axi-dmac: remove redundant null check on desc 2021-02-08 17:39:39 +05:30
dw-edma dmaengine: dw-edma: Add pcim_iomap_table return check 2021-03-16 22:58:54 +05:30
fsl-dpaa2-qdma dmaengine: fsl-dpaa2-qdma: Fix error return code in two functions 2021-05-10 21:34:49 +05:30
hsu dmaengine: hsu: Account transferred bytes 2021-05-31 09:50:39 +05:30
idxd dmaengine updates for v5.14-rc1 2021-07-05 12:05:13 -07:00
ioat
ipu dmaengine: ipu: fix doc warning in ipu_irq.c 2021-06-03 18:17:26 +05:30
lgm dmaengine: INTEL_LDMA should depend on X86 2021-02-01 11:27:14 +05:30
mediatek dmaengine: mediatek: use GFP_NOWAIT instead of GFP_ATOMIC in prep_dma 2021-06-07 12:23:47 +05:30
ppc4xx
qcom dmaengine updates for v5.14-rc1 2021-07-05 12:05:13 -07:00
sf-pdma dmaengine updates for v5.14-rc1 2021-07-05 12:05:13 -07:00
sh dmaengine updates for v5.14-rc1 2021-07-05 12:05:13 -07:00
ti dmaengine: ti: omap-dma: Skip pointless cpu_pm context restore on errors 2021-05-31 10:01:53 +05:30
xilinx dmaengine: xilinx_dma: Fix read-after-free bug when terminating transfers 2021-07-14 10:39:34 +05:30
acpi-dma.c
altera-msgdma.c dmaengine: altera-msgdma: add OF support 2021-06-16 16:14:28 +05:30
amba-pl08x.c
at_hdmac_regs.h dmaengine: at_hdmac: remove platform data header 2021-01-08 13:57:19 +05:30
at_hdmac.c dmaengine: at_hdmac: remove platform data header 2021-01-08 13:57:19 +05:30
at_xdmac.c dmaengine: at_xdmac: Remove unused inline function at_xdmac_csize() 2021-04-20 16:02:19 +05:30
bcm2835-dma.c
bcm-sba-raid.c
dma-axi-dmac.c
dma-jz4780.c dmaengine: jz4780: Add support for the JZ4760(B) 2021-01-26 22:45:22 +05:30
dmaengine.c dmaengine: Fix a double free in dma_async_device_register 2021-04-12 15:05:58 +05:30
dmaengine.h
dmatest.c dmaengine: dmatest: Use dmaengine_get_dma_device 2020-12-11 21:20:08 +05:30
ep93xx_dma.c
fsl_raid.c
fsl_raid.h
fsl-edma-common.c
fsl-edma-common.h
fsl-edma.c
fsl-qdma.c dmaengine: fsl-qdma: check dma_set_mask return value 2021-05-10 19:51:03 +05:30
fsldma.c dmaengine: fsldma: Fix a resource leak in an error handling path of the probe function 2021-01-12 18:00:39 +05:30
fsldma.h
hisi_dma.c
idma64.c
idma64.h
img-mdc-dma.c
imx-dma.c
imx-sdma.c Driver core changes for 5.14-rc1 2021-07-05 13:51:41 -07:00
iop-adma.c
iop-adma.h
k3dma.c dmaengine: k3dma: use the correct HiSilicon copyright 2021-04-12 17:14:53 +05:30
Kconfig dmaengine: ALTERA_MSGDMA depends on HAS_IOMEM 2021-05-31 09:44:14 +05:30
lpc18xx-dmamux.c
Makefile dmaengine: remove coh901318 driver 2021-01-26 22:55:32 +05:30
mcf-edma.c
milbeaut-hdmac.c
milbeaut-xdmac.c dmaengine: milbeaut-xdmac: Fix a resource leak in the error handling path of the probe function 2020-12-29 10:08:00 +05:30
mmp_pdma.c dmaengine: mmp_pdma: Remove mmp_pdma_filter_fn() 2021-01-26 22:58:01 +05:30
mmp_tdma.c
moxart-dma.c
mpc512x_dma.c
mv_xor_v2.c dmaengine: mv_xor_v2: Fix error return code in mv_xor_v2_probe() 2020-11-24 22:55:15 +05:30
mv_xor.c dmaengine: mv_xor: drop of_match_ptr from of_device_id table 2020-11-24 23:02:20 +05:30
mv_xor.h
mxs-dma.c dmaengine: mxs-dma: Remove the unused .id_table 2020-11-24 22:55:15 +05:30
nbpfaxi.c
of-dma.c dmaengine: of-dma: Add support for optional router configuration callback 2020-12-11 21:20:08 +05:30
owl-dma.c dmaengine: owl-dma: Fix a resource leak in the remove function 2021-01-12 18:00:40 +05:30
pch_dma.c
pl330.c dmaengine: pl330: fix wrong usage of spinlock flags in dma_cyclc 2021-05-10 21:38:46 +05:30
plx_dma.c dmaengine: plx_dma: add a missing put_device() on error path 2021-04-12 15:13:51 +05:30
pxa_dma.c
s3c24xx-dma.c
sa11x0-dma.c
sprd-dma.c
st_fdma.c
st_fdma.h
ste_dma40_ll.c
ste_dma40_ll.h
ste_dma40.c dmaengine: stedma40: add missing iounmap() on error in d40_probe() 2021-05-31 09:47:27 +05:30
stm32-dma.c dmaengine: stm32-dma: take address into account when computing max width 2020-12-11 21:13:08 +05:30
stm32-dmamux.c dmaengine: stm32: mark of_device_id table as maybe unused 2020-11-24 23:02:20 +05:30
stm32-mdma.c dmaengine: stm32-mdma: fix PM reference leak in stm32_mdma_alloc_chan_resourc() 2021-05-31 09:33:09 +05:30
sun4i-dma.c dmaengine: sun4i: Use list_move_tail instead of list_del/list_add_tail 2021-06-07 17:06:38 +05:30
sun6i-dma.c
tegra20-apb-dma.c dmaengine: tegra20: Fix runtime PM imbalance on error 2021-04-12 15:10:44 +05:30
tegra210-adma.c
timb_dma.c
TODO
txx9dmac.c
txx9dmac.h
uniphier-mdmac.c
uniphier-xdmac.c
virt-dma.c
virt-dma.h
xgene-dma.c