linux/drivers/dma
Vinicius Costa Gomes 2ef4b0e911 dmaengine: dmatest: Fix dmatest waiting less when interrupted
[ Upstream commit e87ca16e99 ]

Change the "wait for operation finish" logic to take interrupts into
account.

When using dmatest with idxd DMA engine, it's possible that during
longer tests, the interrupt notifying the finish of an operation
happens during wait_event_freezable_timeout(), which causes dmatest to
cleanup all the resources, some of which might still be in use.

This fix ensures that the wait logic correctly handles interrupts,
preventing premature cleanup of resources.

Reported-by: kernel test robot <oliver.sang@intel.com>
Closes: https://lore.kernel.org/oe-lkp/202502171134.8c403348-lkp@intel.com
Signed-off-by: Vinicius Costa Gomes <vinicius.gomes@intel.com>
Reviewed-by: Dave Jiang <dave.jiang@intel.com>
Link: https://lore.kernel.org/r/20250305230007.590178-1-vinicius.gomes@intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2025-05-02 07:59:18 +02:00
..
amd dmaengine: amd: qdma: Remove using the private get and set dma_ops APIs 2025-01-02 10:34:14 +01:00
bestcomm dmaengine: bestcomm: Code cleanup for bcom_sram_init 2024-01-30 22:11:56 +05:30
dw dmaengine: dw: Select only supported masters for ACPI devices 2025-01-02 10:34:13 +01:00
dw-axi-dmac dma: dw-axi-dmac: support per channel interrupt 2024-04-07 17:18:14 +05:30
dw-edma dmaengine: dw-edma: Do not enable watermark interrupts for HDMA 2024-08-28 18:40:17 +05:30
fsl-dpaa2-qdma dmaengine: Fix spelling mistakes 2024-09-02 13:56:01 +05:30
hsu dmaengine: hsu: Include headers we are direct user of 2022-09-04 22:49:35 +05:30
idxd module: Convert default symbol namespace to string literal 2025-02-08 09:57:05 +01:00
ioat dmaengine: Fix spelling mistakes 2024-09-02 13:56:01 +05:30
lgm dmaengine: Fix spelling mistakes 2024-09-02 13:56:01 +05:30
mediatek dmaengine: Fix spelling mistakes 2024-09-02 13:56:01 +05:30
ppc4xx dmaengine: Fix spelling mistakes 2024-09-02 13:56:01 +05:30
ptdma dmaengine: Fix spelling mistakes 2024-09-02 13:56:01 +05:30
qcom dmaengine updates for v6.12 2024-09-23 14:08:08 -07:00
sf-pdma dmaengine: sf-pdma: add mpfs-pdma compatible name 2023-12-11 16:33:22 +05:30
sh dmaengine: sh: rz-dmac: handle configs where one address is zero 2024-10-14 23:10:58 +05:30
stm32 dmaengine: stm32-dma3: Set lli_size after allocation 2024-08-05 22:28:48 +05:30
ti dmaengine: ti: edma: fix OF node reference leaks in edma_driver 2025-02-08 09:58:00 +01:00
xilinx dmaengine: Fix spelling mistakes 2024-09-02 13:56:01 +05:30
acpi-dma.c dmaengine: Fix spelling mistakes 2024-09-02 13:56:01 +05:30
altera-msgdma.c dmaengine: Fix spelling mistakes 2024-09-02 13:56:01 +05:30
amba-pl08x.c dmaengine: Fix spelling mistakes 2024-09-02 13:56:01 +05:30
apple-admac.c dmaengine: apple-admac: Avoid accessing registers in probe 2025-01-02 10:34:14 +01:00
at_hdmac.c dmaengine: Fix spelling mistakes 2024-09-02 13:56:01 +05:30
at_xdmac.c dmaengine: at_xdmac: avoid null_prt_deref in at_xdmac_prep_dma_memset 2025-01-02 10:34:14 +01:00
bcm-sba-raid.c dmaengine: Fix spelling mistakes 2024-09-02 13:56:01 +05:30
bcm2835-dma.c dmaengine: Fix spelling mistakes 2024-09-02 13:56:01 +05:30
dma-axi-dmac.c dmaengine: dma-axi-dmac: Implement device_prep_peripheral_dma_vec 2024-06-21 15:31:57 +05:30
dma-jz4780.c dmaengine: dma-jz4780: Convert to platform remove callback returning void 2023-09-28 13:10:47 +05:30
dmaengine.c dmaengine: avoid non-constant format string 2024-08-29 22:49:53 +05:30
dmaengine.h dmaengine: dmaengine_desc_callback_valid(): Check for callback_result 2021-10-25 09:42:56 +05:30
dmatest.c dmaengine: dmatest: Fix dmatest waiting less when interrupted 2025-05-02 07:59:18 +02:00
ep93xx_dma.c dmaengine: cirrus: check that output may be truncated 2024-10-11 09:55:47 +00:00
fsl-edma-common.c dmaengine: fsl-edma: change the memory access from local into remote mode in i.MX 8QM 2024-06-11 23:55:34 +05:30
fsl-edma-common.h dmaengine: fsl-edma: implement the cleanup path of fsl_edma3_attach_pd() 2025-01-02 10:34:14 +01:00
fsl-edma-main.c dmaengine: fsl-edma: free irq correctly in remove path 2025-04-10 14:39:23 +02:00
fsl-edma-trace.c dmaengine: fsl-edma: add trace event support 2024-05-04 18:00:16 +05:30
fsl-edma-trace.h dmaengine: fsl-edma: add trace event support 2024-05-04 18:00:16 +05:30
fsl-qdma.c dmaengine: fsl-qdma: add __iomem and struct in union to fix sparse warning 2024-02-23 12:20:39 +05:30
fsl_raid.c dmaengine: fsl_raid: Convert to platform remove callback returning void 2023-09-28 13:10:48 +05:30
fsl_raid.h dmaengine: Driver support for FSL RaidEngine device. 2015-04-02 16:10:27 +05:30
fsldma.c dmaengine: fsldma: Convert to platform remove callback returning void 2023-09-28 13:10:48 +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: Fix spelling mistakes 2024-09-02 13:56:01 +05:30
idma64.c dmaengine updates for v6.12 2024-09-23 14:08:08 -07:00
idma64.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
img-mdc-dma.c dmaengine: img-mdc-dma: Convert to platform remove callback returning void 2023-09-28 13:10:48 +05:30
imx-dma.c dmaengine: imx-dma: Remove i.MX21 support 2024-08-29 22:49:07 +05:30
imx-sdma.c dmaengine: imx-sdma: don't print warning when firmware is absent 2024-06-07 23:14:45 +05:30
k3dma.c dmaengine: Drop unnecessary of_match_device() calls 2023-10-09 10:55:16 +05:30
Kconfig dmaengine: Add dma router for pl08x in LPC32XX SoC 2024-08-29 22:54:11 +05:30
loongson1-apb-dma.c dmaengine: loongson1-apb-dma: Fix the build warning caused by the size of pdev_irqname 2024-09-02 13:56:32 +05:30
lpc18xx-dmamux.c dmaengine: Explicitly include correct DT includes 2023-08-01 23:51:27 +05:30
lpc32xx-dmamux.c dmaengine: Add dma router for pl08x in LPC32XX SoC 2024-08-29 22:54:11 +05:30
ls2x-apb-dma.c dmaengine: loongson2-apb: Change GENMASK to GENMASK_ULL 2025-01-02 10:34:21 +01:00
Makefile dmaengine: Add dma router for pl08x in LPC32XX SoC 2024-08-29 22:54:11 +05:30
mcf-edma-main.c dmaengine: fsl-edma: remove redundant "idle" field from fsl_chan 2024-06-11 23:55:34 +05:30
milbeaut-hdmac.c dmaengine: milbeaut-hdmac: Convert to platform remove callback returning void 2023-11-24 18:32:30 +05:30
milbeaut-xdmac.c dmaengine: milbeaut-xdmac: Convert to platform remove callback returning void 2023-11-24 18:32:30 +05:30
mmp_pdma.c dmaengine: Drop unnecessary of_match_device() calls 2023-10-09 10:55:16 +05:30
mmp_tdma.c dmaengine: mmp_tdma: drop unused variable 'of_id' 2023-10-10 23:30:52 +05:30
moxart-dma.c dmaengine: moxart-dma: remove unused struct 'moxart_filter_data' 2024-06-11 23:55:34 +05:30
mpc512x_dma.c dmaengine: mpc512x_dma: Convert to platform remove callback returning void 2023-09-28 13:10:51 +05:30
mv_xor.c dmaengine: mv_xor: fix child node refcount handling in early exit 2025-01-02 10:34:13 +01:00
mv_xor.h dmaengine: Fix spelling mistakes 2024-09-02 13:56:01 +05:30
mv_xor_v2.c dmaengine: Fix spelling mistakes 2024-09-02 13:56:01 +05:30
mxs-dma.c dmaengine: Explicitly include correct DT includes 2023-08-01 23:51:27 +05:30
nbpfaxi.c dmaengine: Fix spelling mistakes 2024-09-02 13:56:01 +05:30
of-dma.c dmaengine: Fix spelling mistakes 2024-09-02 13:56:01 +05:30
owl-dma.c dmaengine: Fix spelling mistakes 2024-09-02 13:56:01 +05:30
pch_dma.c dmaengine: pch_dma: remove unused function chan2parent 2024-04-07 18:36:58 +05:30
pl330.c dma-mapping: don't return errors from dma_set_max_seg_size 2024-08-29 07:22:49 +03:00
plx_dma.c dmaengine: plx_dma: Don't set chancnt 2023-05-24 12:24:32 +05:30
pxa_dma.c dmaengine: Drop unnecessary of_match_device() calls 2023-10-09 10:55:16 +05:30
sa11x0-dma.c dmaengine: sa11x0: Annotate struct sa11x0_dma_desc with __counted_by 2023-09-28 16:42:14 +05:30
sprd-dma.c dmaengine: sprd: delete redundant parameter for dma driver function 2023-10-02 21:28:33 +05:30
st_fdma.c dmaengine: Use device_get_match_data() 2023-10-09 10:54:48 +05:30
st_fdma.h dmaengine: st_fdma: Annotate struct st_fdma_desc with __counted_by 2023-09-28 16:42:14 +05:30
ste_dma40.c dma-mapping: don't return errors from dma_set_max_seg_size 2024-08-29 07:22:49 +03:00
ste_dma40.h dmaengine: Fix spelling mistakes 2024-09-02 13:56:01 +05:30
ste_dma40_ll.c dmaengine: ste_dma40: Remove platform data 2023-05-16 23:00:19 +05:30
ste_dma40_ll.h dmaengine: Fix spelling mistakes 2024-09-02 13:56:01 +05:30
sun4i-dma.c dmaengine: sun4i-dma: Convert to platform remove callback returning void 2023-09-28 13:10:55 +05:30
sun6i-dma.c dmaengine: sun6i-dma: Convert to platform remove callback returning void 2023-09-28 13:10:56 +05:30
tegra20-apb-dma.c dmaengine: Fix spelling mistakes 2024-09-02 13:56:01 +05:30
tegra186-gpc-dma.c dmaengine: tegra: Return correct DMA status when paused 2025-01-02 10:34:14 +01:00
tegra210-adma.c dmaengine: tegra210-adma: Support dma-channel-mask property 2023-12-11 17:44:18 +05:30
timb_dma.c dmaengine: timb_dma: Convert to platform remove callback returning void 2023-09-28 13:10:58 +05:30
TODO dmaengine: dw: don't perform DMA when dmaengine_submit is called 2014-07-15 22:14:30 +05:30
txx9dmac.c dmaengine: txx9dmac: Convert to platform remove callback returning void 2023-09-28 13:10:58 +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: Convert to platform remove callback returning void 2023-11-24 18:32:30 +05:30
uniphier-xdmac.c dmaengine: uniphier-xdmac: Convert to platform remove callback returning void 2023-11-24 18:32:30 +05:30
virt-dma.c dmaengine: virt-dma: add missing MODULE_DESCRIPTION() macro 2024-06-28 13:03:13 +05:30
virt-dma.h dma: Add lockdep asserts to virt-dma 2024-04-07 17:08:19 +05:30
xgene-dma.c dmaengine: Fix spelling mistakes 2024-09-02 13:56:01 +05:30