linux-sg2042/drivers/dma
Martin Povišer b7abd53588 dmaengine: apple-admac: Fix 'current_tx' not getting freed
[ Upstream commit d9503be5a1 ]

In terminate_all we should queue up all submitted descriptors to be
freed. We do that for the content of the 'issued' and 'submitted' lists,
but the 'current_tx' descriptor falls through the cracks as it's
removed from the 'issued' list once it gets assigned to be the current
descriptor. Explicitly queue up freeing of the 'current_tx' descriptor
to address a memory leak that is otherwise present.

Fixes: b127315d9a ("dmaengine: apple-admac: Add Apple ADMAC driver")
Signed-off-by: Martin Povišer <povik+lin@cutebit.org>
Link: https://lore.kernel.org/r/20230224152222.26732-2-povik+lin@cutebit.org
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-04-20 12:35:08 +02:00
..
bestcomm treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_56.RULE (part 2) 2022-06-10 14:51:35 +02:00
dw dmaengine updates for v6.0-rc1 2022-08-04 18:44:38 -07:00
dw-axi-dmac dmaengine: dw-axi-dmac: Do not dereference NULL structure 2023-03-10 09:33:39 +01:00
dw-edma dmaengine: dw-edma: Fix readq_ch() return value truncation 2023-03-10 09:33:38 +01:00
fsl-dpaa2-qdma dmaengine: fsl-dpaa2-qdma: Drop comma after SoC match table sentinel 2022-03-11 15:47:39 +05:30
hsu dmaengine: hsu: Include headers we are direct user of 2022-09-04 22:49:35 +05:30
idxd dmaengine: idxd: Set traffic class values in GRPCFG on DSA 2.0 2023-03-10 09:33:28 +01:00
ioat dmaengine: ioat: remove unused declarations in dma.h 2022-09-29 22:46:09 +05:30
ipu dmaengine: ipu: Fix fall-through warning for Clang 2021-07-13 14:38:47 -05:00
lgm dmaengine: lgm: Move DT parsing after initialization 2023-01-24 07:24:39 +01:00
mediatek dmaengine: mediatek: mtk-hsdma: Fix typo 'the the' in comment 2022-07-26 22:06:05 +05:30
ppc4xx treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_406.RULE 2022-06-10 14:51:37 +02:00
ptdma dmaengine: ptdma: check for null desc before calling pt_cmd_callback 2023-03-10 09:33:39 +01:00
qcom dmaengine: qcom: gpi: Set link_rx bit on GO TRE for rx operation 2023-02-01 08:34:02 +01:00
sf-pdma dmaengine: sf-pdma: pdma_desc memory leak fix 2023-03-10 09:33:39 +01:00
sh dmaengine: sh: rcar-dmac: Replace zero-length arrays with DECLARE_FLEX_ARRAY() helper 2022-09-29 21:14:32 +05:30
ti dmaengine: ti: k3-udma: Do conditional decrement of UDMA_CHAN_RT_PEER_BCNT_REG 2023-02-01 08:34:02 +01:00
xilinx dmaengine: xilinx_dma: call of_node_put() when breaking out of for_each_child_of_node() 2023-02-01 08:34:24 +01:00
Kconfig dmaengine: HISI_DMA should depend on ARCH_HISI 2023-03-10 09:33:28 +01:00
Makefile dmaengine: apple-admac: Add Apple ADMAC driver 2022-06-09 12:20:20 +05:30
TODO
acpi-dma.c dmaengine: acpi: Check for errors from acpi_register_gsi() separately 2021-08-06 21:48:11 +05:30
altera-msgdma.c dmaengine: altera-msgdma: Fixed some inconsistent function name descriptions 2022-07-06 22:00:06 +05:30
amba-pl08x.c dmaengine: pl08x: Fix double word 2022-09-29 12:24:16 +05:30
apple-admac.c dmaengine: apple-admac: Fix 'current_tx' not getting freed 2023-04-20 12:35:08 +02:00
at_hdmac.c dmaengine: at_hdmac: Check return code of dma_async_device_register 2022-11-08 10:43:57 +05:30
at_hdmac_regs.h dmaengine: at_hdmac: Fix at_lli struct definition 2022-11-08 10:43:56 +05:30
at_xdmac.c dmaengine: at_xdmac: Replace two if statements with only one with two conditions 2022-09-05 12:01:55 +05:30
bcm-sba-raid.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_30.RULE (part 2) 2022-06-10 14:51:35 +02:00
bcm2835-dma.c dmaengine: bcm2835: Drop local dma_parms 2020-09-11 17:42:12 +05:30
dma-axi-dmac.c dmaengine: axi-dmac: check cache coherency register 2022-07-26 22:05:20 +05:30
dma-jz4780.c dmaengine: jz4780: fix typo in comment 2022-07-06 10:51:43 +05:30
dmaengine.c dmaengine: Fix double increment of client_count in dma_chan_get() 2023-02-01 08:34:23 +01:00
dmaengine.h dmaengine: dmaengine_desc_callback_valid(): Check for `callback_result` 2021-10-25 09:42:56 +05:30
dmatest.c treewide: use get_random_bytes() when possible 2022-10-11 17:42:58 -06:00
ep93xx_dma.c dmaengine: ep93xx: Fix typo in comments 2022-07-01 21:50:23 +05:30
fsl-edma-common.c dmaengine: fsl-edma: remove redundant assignment to pointer last_sg 2022-07-01 22:09:16 +05:30
fsl-edma-common.h dmaengine: fsl-edma: support edma memcpy 2021-10-28 22:56:24 +05:30
fsl-edma.c dmaengine: fsl-edma: support edma memcpy 2021-10-28 22:56:24 +05:30
fsl-qdma.c dmaengine: fsl-qdma: check dma_set_mask return value 2021-05-10 19:51:03 +05:30
fsl_raid.c dmaengine: fsl: remove bad channel update 2020-10-05 09:59:17 +05:30
fsl_raid.h
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 fsldma: fix very broken 32-bit ppc ioread64 functionality 2020-08-29 13:50:56 -07:00
hisi_dma.c dmaengine: hisilicon: Dump regs to debugfs 2022-09-04 22:42:35 +05:30
idma64.c dmaengine: idma64: Switch to use __maybe_unused instead of ifdeffery 2020-11-09 17:21:05 +05:30
idma64.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
img-mdc-dma.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 422 2019-06-05 17:37:15 +02:00
imx-dma.c dmaengine: imx-dma: Cast of_device_get_match_data() with (uintptr_t) 2022-07-21 18:08:35 +05:30
imx-sdma.c dmaengine: imx-sdma: Fix a possible memory leak in sdma_transfer_init 2023-02-06 08:06:33 +01:00
iop-adma.c Merge branch 'topic/tasklet' into next 2020-10-01 10:18:59 +05:30
iop-adma.h treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
k3dma.c dmaengine: k3dma: use the correct HiSilicon copyright 2021-04-12 17:14:53 +05:30
lpc18xx-dmamux.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
mcf-edma.c dmaengine: mcf-edma: Fix NULL pointer exception in mcf_edma_tx_handler 2020-06-24 13:06:15 +05:30
milbeaut-hdmac.c dmaengine: milbeaut-hdmac: Prefer kcalloc over open coded arithmetic 2021-10-25 12:12:13 +05:30
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: deprecate '#dma-channels' 2022-05-19 22:53:46 +05:30
mmp_tdma.c dmaengine: mmp: convert tasklets to use new tasklet_setup() API 2020-09-18 12:19:06 +05:30
moxart-dma.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_56.RULE (part 2) 2022-06-10 14:51:35 +02:00
mpc512x_dma.c dmaengine: mpc512x: Fix fall-through warning for Clang 2021-07-14 11:05:55 -05:00
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 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 288 2019-06-05 17:36:37 +02:00
mv_xor_v2.c dmaengine: mv_xor_v2: Fix a resource leak in mv_xor_v2_remove() 2022-11-08 10:43:56 +05:30
mxs-dma.c dmaengine: mxs: use platform_driver_register 2022-09-29 12:05:20 +05:30
nbpfaxi.c dmaengine: nbpfaxi: Use platform_get_irq_optional() to get the interrupt 2022-04-11 16:26:53 +05:30
of-dma.c dmaengine: of-dma: router_xlate to return -EPROBE_DEFER if controller is not yet available 2021-07-28 12:54:50 +05:30
owl-dma.c dmaengine: owl: fix typo in comment 2022-07-06 10:50:43 +05:30
pch_dma.c dmaengine: pch_dma: Remove usage of the deprecated "pci-dma-compat.h" API 2022-01-08 22:16:44 +05:30
pl330.c dmaengine: pl330: Remove unused flags 2022-09-05 12:01:54 +05:30
plx_dma.c dmaengine: plx_dma: Move spin_lock_bh() to spin_lock() 2022-04-20 15:59:33 +05:30
pxa_dma.c dmaengine: pxa_dma: use platform_get_irq_optional 2022-11-08 10:42:51 +05:30
s3c24xx-dma.c dmaengine: virt-dma: Fix double word in comments 2022-09-29 12:22:27 +05:30
sa11x0-dma.c dmaengine: sa11x0: Mark PM functions as __maybe_unused 2021-10-26 10:55:07 +05:30
sprd-dma.c dmaengine: sprd: Cleanup in .remove() after pm_runtime_get_sync() failed 2022-07-26 18:20:49 +05:30
st_fdma.c dmaengine: st_fdma: fix MODULE_ALIAS 2021-12-13 13:18:48 +05:30
st_fdma.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
ste_dma40.c dmaengine: ste_dma40: fix typo in comment 2022-07-06 10:54:08 +05:30
ste_dma40_ll.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194 2019-05-30 11:29:22 -07:00
ste_dma40_ll.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194 2019-05-30 11:29:22 -07:00
stm32-dma.c dmaengine: stm32-dma: fix potential race between pause and resume 2022-11-08 10:43:56 +05:30
stm32-dmamux.c dmaengine: stm32-dmamux: Simplify code and save a few bytes of memory 2022-09-05 11:52:28 +05:30
stm32-mdma.c dmaengine: stm32-mdma: memset stm32_mdma_chan_config struct before using it 2022-10-19 19:01:19 +05:30
sun4i-dma.c dmaengine: sun4i: Set the maximum segment size 2022-07-05 18:34:26 +05:30
sun6i-dma.c dmaengine: sun6i: Add support for the D1 variant 2022-05-19 23:43:41 +05:30
tegra20-apb-dma.c dmaengine: tegra20-apb: stop checking config->slave_id 2021-12-17 11:23:38 +05:30
tegra186-gpc-dma.c dmaengine: tegra: Fix memory leak in terminate_all() 2023-02-01 08:34:24 +01:00
tegra210-adma.c dmaengine: tegra210-adma: fix global intr clear 2023-01-24 07:24:39 +01:00
timb_dma.c dmaengine: timb_dma: convert tasklets to use new tasklet_setup() API 2020-09-18 12:19:07 +05:30
txx9dmac.c dmaengine: txx9dmac: convert tasklets to use new tasklet_setup() API 2020-09-18 12:19:07 +05:30
txx9dmac.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
uniphier-mdmac.c dmaengine: uniphier-mdmac: replace zero-length array with flexible-array member 2020-02-13 20:15:57 +05:30
uniphier-xdmac.c dmaengine: uniphier-xdmac: Fix type of address variables 2022-01-03 17:49:37 +05:30
virt-dma.c dmaengine: virt-dma: convert tasklets to use new tasklet_setup() API 2020-09-18 12:19:07 +05:30
virt-dma.h dmaengine: virt-dma: Add missing locking around list operations 2019-12-26 10:04:18 +05:30
xgene-dma.c dmaengine: xgene: convert tasklets to use new tasklet_setup() API 2020-09-18 12:19:07 +05:30