linux/drivers/dma
Christophe JAILLET 1ffc6f359f dmaengine: dw-edma: Fix return value check for dma_set_mask_and_coherent()
The commit in the Fixes: tag has changed the logic of the code and now it
is likely that the probe will return an early success (0), even if not
completely executed.

This should lead to a crash or similar issue later on when the code
accesses to some never allocated resources.

Change the '!err' into a 'err' when checking if
'dma_set_mask_and_coherent()' has failed or not.

While at it, simplify the code and remove the "can't success code" related
to 32 DMA mask.
As stated in [1], 'dma_set_mask_and_coherent(DMA_BIT_MASK(64))' can't fail
if 'dev->dma_mask' is non-NULL. And if it is NULL, it would fail for the
same reason when tried with DMA_BIT_MASK(32).

[1]: https://lkml.org/lkml/2021/6/7/398

Fixes: ecb8c88bd3 ("dmaengine: dw-edma-pcie: switch from 'pci_' to 'dma_' API")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Link: https://lore.kernel.org/r/935fbb40ae930c5fe87482a41dcb73abf2257973.1636492127.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Vinod Koul <vkoul@kernel.org>
2021-11-22 12:14:12 +05:30
..
bestcomm dmaengine: bestcomm: fix system boot lockups 2021-10-18 11:43:12 +05:30
dw dmaengine: dw: switch from 'pci_' to 'dma_' API 2021-10-26 10:54:32 +05:30
dw-axi-dmac dmaengine: dw-axi-dmac: Fix uninitialized variable in axi_chan_block_xfer_start() 2021-11-22 11:22:26 +05:30
dw-edma dmaengine: dw-edma: Fix return value check for dma_set_mask_and_coherent() 2021-11-22 12:14:12 +05:30
fsl-dpaa2-qdma dmaengine: fsl-dpaa2-qdma: Fix spelling mistake "faile" -> "failed" 2021-08-29 19:14:20 +05:30
hsu dmaengine: hsu: switch from 'pci_' to 'dma_' API 2021-10-26 10:54:47 +05:30
idxd dmaengine: idxd: fix resource leak on dmaengine driver disable 2021-10-28 22:54:45 +05:30
ioat dmaengine: ioat: switch from 'pci_' to 'dma_' API 2021-10-26 10:54:53 +05:30
ipu dmaengine: ipu: Fix fall-through warning for Clang 2021-07-13 14:38:47 -05:00
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 ppc4xx: replace sscanf() by kstrtoul() 2021-07-28 12:40:51 +05:30
ptdma dmaengine: ptdma: remove PT_OFFSET to avoid redefnition 2021-08-29 19:14:21 +05:30
qcom dmaengine: qcom: bam_dma: Add "powered remotely" mode 2021-10-28 22:42:30 +05:30
sf-pdma dmaengine updates for v5.14-rc1 2021-07-05 12:05:13 -07:00
sh dmaengine: sh: make array ds_lut static 2021-10-25 12:15:34 +05:30
ti dmaengine: ti: k3-udma: Set r/tchan or rflow to NULL if request fail 2021-11-09 11:24:06 +05:30
xilinx dmaengine: zynqmp_dma: Correctly handle descriptor callbacks 2021-10-28 22:53:54 +05:30
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: Correctly handle descriptor callbacks 2021-10-28 22:53:54 +05:30
amba-pl08x.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
at_hdmac.c dmaengine: at_hdmac: remove platform data header 2021-01-08 13:57:19 +05:30
at_hdmac_regs.h dmaengine: at_hdmac: remove platform data header 2021-01-08 13:57:19 +05:30
at_xdmac.c dmaengine: at_xdmac: fix compilation warning 2021-10-28 22:52:15 +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
dma-axi-dmac.c dmaengine: axi-dmac: Drop local dma_parms 2020-09-11 17:42:12 +05:30
dma-jz4780.c dmaengine: jz4780: Set max number of SGs per burst 2021-10-18 12:07:27 +05:30
dmaengine.c dmaengine: Remove redundant initialization of variable err 2021-10-18 09:38:05 +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: Use dmaengine_get_dma_device 2020-12-11 21:20:08 +05:30
ep93xx_dma.c dmaengine: ep93xx: Prepare clock before using it 2021-08-02 12:27:10 +05:30
fsl-edma-common.c dmaengine: fsl-edma: support edma memcpy 2021-10-28 22:56:24 +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: hisi_dma: switch from 'pci_' to 'dma_' API 2021-10-26 10:54:40 +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: configure the generic DMA type to make it work 2021-08-02 12:31:19 +05:30
imx-sdma.c dmaengine: imx-sdma: remove space after sizeof 2021-10-18 12:15:39 +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: use the correct HiSilicon copyright 2021-04-12 17:14:53 +05:30
Kconfig dmaengine: zynqmp_dma: enable COMPILE_TEST 2021-10-01 17:26:30 +05:30
lpc18xx-dmamux.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
Makefile dmaengine: ptdma: Initial driver for the AMD PTDMA 2021-08-29 19:14:20 +05:30
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_pdma: fix reference count leaks in mmp_pdma_probe 2021-10-25 12:12:58 +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: moxart-dma: remove redundant irqsave and irqrestore in hardIRQ 2020-11-09 17:25:54 +05:30
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 error return code in mv_xor_v2_probe() 2020-11-24 22:55:15 +05:30
mxs-dma.c dmaengine: mxs-dma: Remove the unused .id_table 2020-11-24 22:55:15 +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-07-28 12:54:50 +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 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-05-10 21:38:46 +05:30
plx_dma.c dmaengine: switch from 'pci_' to 'dma_' API 2021-10-26 10:54:57 +05:30
pxa_dma.c dmaengine: pxa_dma: Prefer struct_size over open coded arithmetic 2021-10-20 18:35:22 -05: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: Mark PM functions as __maybe_unused 2021-10-26 10:55:07 +05:30
sprd-dma.c dmaengine: sprd: Add missing MODULE_DEVICE_TABLE 2021-07-15 17:47:38 +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.c dmaengine: stedma40: add missing iounmap() on error in d40_probe() 2021-05-31 09:47:27 +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: avoid 64-bit division in stm32_dma_get_max_width 2021-11-09 11:20:35 +05:30
stm32-dmamux.c dmaengine: stm32-dmamux: Fix PM usage counter unbalance in stm32 dmamux ops 2021-07-28 12:04:12 +05:30
stm32-mdma.c dmaengine: stm32-mdma: Use struct_size() helper in devm_kzalloc() 2021-10-01 17:27:42 +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 dmaengine: sun6i: Add support for A100 DMA 2020-11-18 16:28:49 +05:30
tegra20-apb-dma.c dmaengine: tegra20: Fix runtime PM imbalance on error 2021-04-12 15:10:44 +05:30
tegra210-adma.c dmaengine: tegra210-adma: fix pm runtime unbalance in tegra_adma_remove 2021-10-25 10:06:10 +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-07-27 18:15:42 +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