linux-stable/drivers/spi
Andy Shevchenko c789397576 spi: Don't mark message DMA mapped when no transfer in it is
[ Upstream commit 9f788ba457 ]

There is no need to set the DMA mapped flag of the message if it has
no mapped transfers. Moreover, it may give the code a chance to take
the wrong paths, i.e. to exercise DMA related APIs on unmapped data.
Make __spi_map_msg() to bail earlier on the above mentioned cases.

Fixes: 99adef310f ("spi: Provide core support for DMA mapping transfers")
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://msgid.link/r/20240522171018.3362521-2-andriy.shevchenko@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-06-16 13:23:36 +02:00
..
Kconfig spi: Prevent adding devices below an unregistering controller 2020-08-26 10:31:00 +02:00
Makefile spi: add SPI controller driver for UniPhier SoC 2018-08-01 11:22:37 +01:00
internals.h
spi-altera.c
spi-armada-3700.c spi: change clk_disable_unprepare to clk_unprepare 2021-12-29 12:20:43 +01:00
spi-ath79.c spi: add flags parameter to txrx_word function pointers 2018-08-01 14:50:24 +01:00
spi-atmel.c spi: atmel: Put allocated master before return 2021-03-04 09:39:44 +01:00
spi-au1550.c
spi-axi-spi-engine.c
spi-bcm-qspi.c spi: bcm-qspi: return error if neither hif_mspi nor mspi is available 2023-08-11 11:45:13 +02:00
spi-bcm-qspi.h
spi-bcm63xx-hsspi.c spi: bcm63xx-hsspi: Fix multi-bit mode setting 2023-03-11 16:31:41 +01:00
spi-bcm63xx.c spi: bcm63xx: fix max prepend length 2023-08-11 11:45:26 +02:00
spi-bcm2835.c spi: bcm2835: Release the DMA channel if probe fails after dma_init 2020-12-11 13:25:03 +01:00
spi-bcm2835aux.c spi: bcm2835aux: Restore err assignment in bcm2835aux_spi_probe 2020-12-30 11:25:37 +01:00
spi-bitbang-txrx.h
spi-bitbang.c spi: bitbang: Fix NULL pointer dereference in spi_unregister_master 2019-07-10 09:53:32 +02:00
spi-brcmstb-qspi.c
spi-butterfly.c spi: add flags parameter to txrx_word function pointers 2018-08-01 14:50:24 +01:00
spi-cadence.c spi: cadence: Correct initialisation of runtime PM again 2021-07-28 11:13:48 +02:00
spi-cavium-octeon.c
spi-cavium-thunderx.c spi: spi-cavium-thunderx: Add missing pci_release_regions() 2020-01-12 12:17:11 +01:00
spi-cavium.c
spi-cavium.h
spi-clps711x.c
spi-coldfire-qspi.c
spi-davinci.c spi: davinci: Fix use-after-free on unbind 2020-12-30 11:26:14 +01:00
spi-dln2.c spi: dln2: Fix reference leak to master 2021-05-22 10:59:15 +02:00
spi-dw-mid.c spi: dw: Return any value retrieved from the dma_transfer callback 2020-06-22 09:05:20 +02:00
spi-dw-mmio.c spi: dw-mmio: add MSCC Ocelot support 2018-07-30 12:02:08 +01:00
spi-dw-pci.c
spi-dw.c spi: dw: Return any value retrieved from the dma_transfer callback 2020-06-22 09:05:20 +02:00
spi-dw.h spi: spi-dw: Add lock protect dw_spi rx/tx to prevent concurrent calls 2020-02-01 09:37:08 +00:00
spi-efm32.c
spi-ep93xx.c spi: spi-ep93xx: Use dma_data_direction for ep93xx_spi_dma_{finish,prepare} 2018-11-13 11:08:22 -08:00
spi-falcon.c
spi-fsl-cpm.c spi: fsl-cpm: Use 16 bit mode for large transfers with even size 2023-05-30 12:42:13 +01:00
spi-fsl-cpm.h
spi-fsl-dspi.c spi: spi-fsl-dspi: Fix issue with uninitialized dma_slave_config 2021-09-22 11:47:51 +02:00
spi-fsl-espi.c spi: fsl-espi: Only process interrupts for expected events 2020-10-07 08:00:07 +02:00
spi-fsl-lib.c
spi-fsl-lib.h
spi-fsl-lpspi.c spi: fsl-lpspi: Prevent FIFO under/overrun by default 2019-11-24 08:20:55 +01:00
spi-fsl-spi.c spi: spi-fsl-spi: allow changing bits_per_word while CS is still active 2023-08-11 11:45:16 +02:00
spi-fsl-spi.h
spi-gpio.c spi: gpio: Don't leak SPI master in probe error path 2021-06-03 08:38:07 +02:00
spi-img-spfi.c spi: img-spfi: Fix pm_runtime_get_sync() error checking 2022-06-14 16:59:20 +02:00
spi-imx.c spi: imx: mx51-ecspi: Move some initialisation to prepare_message hook. 2023-12-13 17:42:15 +01:00
spi-iproc-qspi.c
spi-jcore.c
spi-lantiq-ssc.c spi: lantiq: fix: Rx overflow error in full duplex mode 2020-08-19 08:14:50 +02:00
spi-lm70llp.c spi: add flags parameter to txrx_word function pointers 2018-08-01 14:50:24 +01:00
spi-loopback-test.c spi: spi-loopback-test: Fix 'tx_buf' might be 'rx_buf' 2021-07-20 16:15:43 +02:00
spi-lp8841-rtc.c
spi-mem.c spi: spi-mem: Fix inverted logic in op sanity check 2020-02-14 16:33:24 -05:00
spi-meson-spicc.c spi: meson-spicc: add IRQ check in meson_spicc_probe 2022-02-08 18:23:16 +01:00
spi-meson-spifc.c spi: spi-meson-spifc: Add missing pm_runtime_disable() in meson_spifc_probe 2022-01-27 09:04:21 +01:00
spi-mpc52xx-psc.c
spi-mpc52xx.c
spi-mpc512x-psc.c
spi-mt65xx.c spi: spi-mt65xx: Fix NULL pointer access in interrupt handler 2024-03-26 18:22:43 -04:00
spi-mxs.c spi: mxs: fix reference leak in mxs_spi_probe 2020-12-30 11:25:54 +01:00
spi-nuc900.c
spi-oc-tiny.c treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
spi-omap-100k.c spi/omap100k:Fix PM disable depth imbalance in omap1_spi100k_probe 2022-10-26 13:19:25 +02:00
spi-omap-uwire.c
spi-omap2-mcspi.c spi: omap2-mcspi: Fix DMA and FIFO event trigger size mismatch 2019-12-01 09:17:33 +01:00
spi-orion.c spi: orion: fix CS GPIO handling again 2018-06-19 13:06:51 +01:00
spi-pic32-sqi.c
spi-pic32.c spi: spi-pic32: Fix issue with uninitialized dma_slave_config 2021-09-22 11:47:51 +02:00
spi-pl022.c spi: spl022: fix Microwire full duplex mode 2021-11-26 11:35:59 +01:00
spi-ppc4xx.c spi: ppc4xx: Drop write-only variable 2024-02-23 08:12:55 +01:00
spi-pxa2xx-dma.c
spi-pxa2xx-pci.c spi: pxa2xx-pci: Balance reference count for PCI DMA device 2022-04-15 14:14:43 +02:00
spi-pxa2xx.c spi: pxa2xx: Fix use-after-free on unbind 2021-01-17 14:04:20 +01:00
spi-pxa2xx.h
spi-qup.c spi: qup: Request DMA before enabling clocks 2023-06-14 10:57:12 +02:00
spi-rb4xx.c spi: rb4xx: Don't leak SPI master in probe error path 2020-12-30 11:26:14 +01:00
spi-rockchip.c spi: rockchip: initialize dma_slave_config properly 2019-11-24 08:21:05 +01:00
spi-rspi.c spi: rspi: Fix sequencer reset during initialization 2019-05-31 06:46:34 -07:00
spi-s3c24xx-fiq.S ARM: s3c: fix fiq for clang IAS 2021-03-04 09:39:35 +01:00
spi-s3c24xx-fiq.h
spi-s3c24xx.c
spi-s3c64xx.c spi: s3c64xx: Fix large transfers with DMA 2022-10-26 13:19:26 +02:00
spi-sc18is602.c spi: sc18is602: Don't leak SPI master in probe error path 2020-12-30 11:26:14 +01:00
spi-sh-hspi.c
spi-sh-msiof.c spi: sh-msiof: fix deferred probing 2019-12-01 09:16:20 +01:00
spi-sh-sci.c spi: add flags parameter to txrx_word function pointers 2018-08-01 14:50:24 +01:00
spi-sh.c spi: spi-sh: Fix use-after-free on unbind 2020-12-30 11:26:14 +01:00
spi-sirf.c
spi-slave-system-control.c
spi-slave-time.c
spi-sprd-adi.c spi: sprd: Fix the wrong WDG_LOAD_VAL 2021-09-22 11:47:51 +02:00
spi-st-ssc4.c spi: st-ssc4: Fix unbalanced pm_runtime_disable() in probe error path 2020-12-30 11:26:14 +01:00
spi-stm32.c spi: stm32: fix stm32_spi_prepare_mbr() that halves spi clk for every run 2022-12-08 11:18:28 +01:00
spi-sun4i.c
spi-sun6i.c spi: spi-sun6i: Fix chipselect/clock bug 2021-07-20 16:15:48 +02:00
spi-tegra20-sflash.c spi: tegra20-sflash: fix to check return value of platform_get_irq() in tegra_sflash_probe() 2023-09-23 10:48:00 +02:00
spi-tegra20-slink.c spi: tegra20: Use of_device_get_match_data() 2022-04-15 14:14:54 +02:00
spi-tegra114.c spi: tegra114: Add missing IRQ check in tegra_spi_probe 2022-04-15 14:14:42 +02:00
spi-test.h
spi-ti-qspi.c spi: spi-ti-qspi: Fix return value handling of wait_for_completion_timeout 2022-06-14 16:59:19 +02:00
spi-tle62x0.c
spi-topcliff-pch.c spi: spi-topcliff-pch: Fix potential double free in pch_spi_process_messages() 2021-07-20 16:15:43 +02:00
spi-txx9.c
spi-uniphier.c spi: uniphier: remove unnecessary include headers 2018-08-02 11:08:06 +01:00
spi-xcomm.c
spi-xilinx.c
spi-xlp.c
spi-xtensa-xtfpga.c spi: add flags parameter to txrx_word function pointers 2018-08-01 14:50:24 +01:00
spi-zynqmp-gqspi.c spi/zynqmp: remove entry that causes a cs glitch 2020-03-25 08:06:06 +01:00
spi.c spi: Don't mark message DMA mapped when no transfer in it is 2024-06-16 13:23:36 +02:00
spidev.c spi: spidev: Align buffers for DMA 2020-08-19 08:15:06 +02:00