kernel_optimize_test/drivers/dma
Peter Ujfalusi b353028aed dmaengine: of-dma: router_xlate to return -EPROBE_DEFER if controller is not yet available
[ Upstream commit eda97cb095f2958bbad55684a6ca3e7d7af0176a ]

If the router_xlate can not find the controller in the available DMA
devices then it should return with -EPORBE_DEFER in a same way as the
of_dma_request_slave_channel() does.

The issue can be reproduced if the event router is registered before the
DMA controller itself and a driver would request for a channel before the
controller is registered.
In of_dma_request_slave_channel():
1. of_dma_find_controller() would find the dma_router
2. ofdma->of_dma_xlate() would fail and returned NULL
3. -ENODEV is returned as error code

with this patch we would return in this case the correct -EPROBE_DEFER and
the client can try to request the channel later.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@gmail.com>
Link: https://lore.kernel.org/r/20210717190021.21897-1-peter.ujfalusi@gmail.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-08-26 08:35:36 -04:00
..
bestcomm treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
dw dmaengine: dw: Make it dependent to HAS_IOMEM 2021-04-21 13:00:50 +02:00
dw-axi-dmac dmaengine: virt-dma: Add missing locking 2019-12-26 10:04:18 +05:30
dw-edma dmaengine: dw-edma: Fix crash on loading/unloading driver 2021-05-22 11:40:52 +02:00
fsl-dpaa2-qdma dmaengine: fsl-dpaa2-qdma: Fix error return code in two functions 2021-06-23 14:42:40 +02:00
hsu dmaengine: hsu: disable spurious interrupt 2021-03-04 11:37:55 +01:00
idxd dmaengine: idxd: add missing dsa driver unregister 2021-06-23 14:42:40 +02:00
ioat dmaengine: ioatdma: remove unused function missed during dma_v2 removal 2020-11-16 22:42:28 +05:30
ipu dmaengine: ipu: convert tasklets to use new tasklet_setup() API 2020-09-18 12:19:06 +05:30
mediatek dmaengine: mediatek: use GFP_NOWAIT instead of GFP_ATOMIC in prep_dma 2021-06-30 08:47:20 -04:00
ppc4xx dmaengine: ppc4xx: convert tasklets to use new tasklet_setup() API 2020-09-18 12:19:07 +05:30
qcom dmaengine: QCOM_HIDMA_MGMT depends on HAS_IOMEM 2021-06-23 14:42:40 +02:00
sf-pdma dmaengine: SF_PDMA depends on HAS_IOMEM 2021-06-23 14:42:40 +02:00
sh dmaengine: usb-dmac: Fix PM reference leak in usb_dmac_probe() 2021-08-26 08:35:35 -04:00
ti dmaengine: ti: k3-udma: Correct normal channel offset when uchan_cnt is not 0 2020-12-30 11:53:51 +01:00
xilinx dmaengine: xilinx_dma: Fix read-after-free bug when terminating transfers 2021-08-26 08:35:35 -04:00
acpi-dma.c dmaengine: acpi: Put the CSRT table after using it 2020-08-17 10:21:37 +05:30
altera-msgdma.c dmaengine: altera-msgdma: fix kernel-doc style for tasklet 2020-10-08 15:18:37 +05:30
amba-pl08x.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
at_hdmac_regs.h dmaengine: at_hdmac: Replace zero-length array with flexible-array 2020-05-13 20:25:16 +05:30
at_hdmac.c dmaengine: at_hdmac: convert tasklets to use new tasklet_setup() API 2020-09-18 12:18:11 +05:30
at_xdmac.c dmaengine: at_xdmac: convert tasklets to use new tasklet_setup() API 2020-09-18 12:18:11 +05:30
bcm-sba-raid.c dmaengine: bcm-sba-raid: Replace zero-length array with flexible-array member 2020-02-13 20:15:35 +05:30
bcm2835-dma.c dmaengine: bcm2835: Drop local dma_parms 2020-09-11 17:42:12 +05:30
coh901318_lli.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194 2019-05-30 11:29:22 -07:00
coh901318.c dmaengine: coh901318: convert tasklets to use new tasklet_setup() API 2020-09-18 12:18:11 +05:30
coh901318.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194 2019-05-30 11:29:22 -07:00
dma-axi-dmac.c dmaengine: axi-dmac: Drop local dma_parms 2020-09-11 17:42:12 +05:30
dma-jz4780.c dmaengine: dma-jz4780: Fix race in jz4780_dma_tx_status 2020-10-05 09:58:48 +05:30
dmaengine.c dmaengine: Fix a double free in dma_async_device_register 2021-04-21 13:00:50 +02:00
dmaengine.h dmaengine: Create debug directories for DMA devices 2020-03-11 14:56:14 +05:30
dmatest.c dmaengine: dmatest: Return boolean result directly in filter() 2020-09-22 20:18:41 +05:30
ep93xx_dma.c dmaengine: ep93xx: convert tasklets to use new tasklet_setup() API 2020-09-18 12:18:11 +05:30
fsl_raid.c dmaengine: fsl: remove bad channel update 2020-10-05 09:59:17 +05:30
fsl_raid.h
fsl-edma-common.c dmaengine: fsl-edma: fix wrong tcd endianness for big-endian cpu 2020-07-06 14:49:22 +05:30
fsl-edma-common.h dmaengine: fsl-edma-common: correct DSIZE_32BYTE 2020-07-06 10:24:49 +05:30
fsl-edma.c dmaengine: fsl-edma: Fix NULL pointer exception in fsl_edma_tx_handler 2020-06-24 13:05:01 +05:30
fsl-qdma.c dmaengine: fsl-qdma: check dma_set_mask return value 2021-07-20 16:05:38 +02:00
fsldma.c dmaengine: fsldma: Fix a resource leak in an error handling path of the probe function 2021-03-04 11:37:55 +01:00
fsldma.h fsldma: fix very broken 32-bit ppc ioread64 functionality 2020-08-29 13:50:56 -07:00
hisi_dma.c dmaengine: hisilicon: Use struct_size() in devm_kzalloc() 2020-06-24 11:26:23 +05:30
idma64.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
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: configure the generic DMA type to make it work 2021-08-12 13:22:05 +02:00
imx-sdma.c dmaengine: imx-sdma: Drop local dma_parms 2020-09-11 17:42:13 +05:30
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: convert tasklets to use new tasklet_setup() API 2020-09-18 12:19:06 +05:30
Kconfig dmaengine: xilinx: dpdma: Add missing dependencies to Kconfig 2021-06-30 08:47:18 -04:00
lpc18xx-dmamux.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
Makefile misc: mic: remove the MIC drivers 2020-10-28 19:12:03 +01: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: Replace zero-length array with flexible-array 2020-06-15 23:08:30 -05:00
milbeaut-xdmac.c dmaengine: milbeaut-xdmac: Fix a resource leak in the error handling path of the probe function 2021-01-17 14:17:02 +01:00
mmp_pdma.c dmaengine: mmp: convert tasklets to use new tasklet_setup() API 2020-09-18 12:19:06 +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 dmaengine: Replace zero-length array with flexible-array 2020-06-15 23:08:30 -05:00
mpc512x_dma.c dmaengine: mpc512x: convert tasklets to use new tasklet_setup() API 2020-09-18 12:19:06 +05:30
mv_xor_v2.c dmaengine: mv_xor_v2: Fix error return code in mv_xor_v2_probe() 2020-12-30 11:53:21 +01:00
mv_xor.c dmaengine: mv_xor: convert tasklets to use new tasklet_setup() API 2020-09-18 12:19:06 +05:30
mv_xor.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 288 2019-06-05 17:36:37 +02:00
mxs-dma.c dmaengine: mxs-dma: convert tasklets to use new tasklet_setup() API 2020-09-18 12:19:06 +05:30
nbpfaxi.c dmaengine: nbpfaxi: convert tasklets to use new tasklet_setup() API 2020-09-18 12:19:06 +05:30
of-dma.c dmaengine: of-dma: router_xlate to return -EPROBE_DEFER if controller is not yet available 2021-08-26 08:35:36 -04:00
owl-dma.c dmaengine: owl-dma: Fix a resource leak in the remove function 2021-03-04 11:37:55 +01:00
pch_dma.c dmaengine: pch_dma: convert tasklets to use new tasklet_setup() API 2020-09-18 12:19:06 +05:30
pl330.c dmaengine: pl330: fix wrong usage of spinlock flags in dma_cyclc 2021-06-23 14:42:52 +02:00
plx_dma.c dmaengine: plx_dma: add a missing put_device() on error path 2021-04-21 13:00:51 +02:00
pxa_dma.c dmaengine updates for v5.3-rc1 2019-07-17 09:55:43 -07:00
s3c24xx-dma.c dmaengine: s3c24xx-dma: fix spelling mistake "to" -> "too" 2020-01-23 17:03:25 +05:30
sa11x0-dma.c dmaengine: sa11x0: convert tasklets to use new tasklet_setup() API 2020-09-18 12:19:07 +05:30
sirf-dma.c dmaengine: sirf-dma: convert tasklets to use new tasklet_setup() API 2020-09-18 12:19:07 +05:30
sprd-dma.c dmaengine: sprd: Set request pending flag when DMA controller is active 2020-03-23 11:38:24 +05:30
st_fdma.c iov_iter: Move unnecessary inclusion of crypto/hash.h 2020-06-30 09:34:23 -04:00
st_fdma.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
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
ste_dma40.c dmaengine: stedma40: add missing iounmap() on error in d40_probe() 2021-06-23 14:42:40 +02:00
stm32-dma.c dmaengine: stm32-dma: Fix PM usage counter imbalance in stm32 dma ops 2021-08-12 13:22:04 +02:00
stm32-dmamux.c dmaengine: stm32-dmamux: Fix PM usage counter unbalance in stm32 dmamux ops 2021-08-12 13:22:04 +02:00
stm32-mdma.c dmaengine: stm32-mdma: fix PM reference leak in stm32_mdma_alloc_chan_resourc() 2021-06-30 08:47:18 -04:00
sun4i-dma.c dmaengine: sun4i-dma: Demote obvious misuse of kerneldoc to standard comment blocks 2020-07-15 17:50:47 +05:30
sun6i-dma.c dmaengine: sun6i: convert tasklets to use new tasklet_setup() API 2020-09-18 12:19:07 +05:30
tegra20-apb-dma.c dmaengine: tegra20: Fix runtime PM imbalance on error 2021-04-28 13:40:01 +02:00
tegra210-adma.c dmaengine: tegra210-adma: Fix runtime PM imbalance on error 2020-06-24 15:11:39 +05:30
timb_dma.c dmaengine: timb_dma: convert tasklets to use new tasklet_setup() API 2020-09-18 12:19:07 +05:30
TODO
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: Use readl_poll_timeout_atomic() in atomic state 2021-08-12 13:22:03 +02:00
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
zx_dma.c dmaengine: zx: remove redundant irqsave in hardIRQ 2020-09-18 12:30:50 +05:30