1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/drivers/mmc/host
Adrian Hunter ab069ce125 mmc: sdhci: Do not lock spinlock around mmc_gpio_get_ro()
sdhci_check_ro() can call mmc_gpio_get_ro() while holding the sdhci
host->lock spinlock. That would be a problem if the GPIO access done by
mmc_gpio_get_ro() needed to sleep.

However, host->lock is not needed anyway. The mmc core ensures that host
operations do not race with each other, and asynchronous callbacks like the
interrupt handler, software timeouts, completion work etc, cannot affect
sdhci_check_ro().

So remove the locking.

Fixes: 6d5cd068ee ("mmc: sdhci: use WP GPIO in sdhci_check_ro()")
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20240614080051.4005-3-adrian.hunter@intel.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
2024-06-20 16:42:30 +02:00
..
alcor.c mmc: alcor: Convert to platform remove callback returning void 2023-08-15 12:45:06 +02:00
atmel-mci.c mmc: atmel-mci: Switch to use dev_err_probe() 2024-04-26 06:51:09 +02:00
au1xmmc.c mmc: au1xmmc: Convert to platform remove callback returning void 2023-08-15 12:45:05 +02:00
bcm2835.c mmc: bcm2835: Convert to platform remove callback returning void 2023-08-15 12:45:03 +02:00
cavium-octeon.c mmc: cavium-octeon: Convert to platform remove callback returning void 2023-08-15 12:45:05 +02:00
cavium-thunderx.c mmc: Explicitly include correct DT includes 2023-08-09 13:21:48 +02:00
cavium.c mmc: cavium: Use '"%s...", __func__' to print function name 2021-03-30 11:42:06 +02:00
cavium.h
cb710-mmc.c mmc: cb710: Convert to platform remove callback returning void 2023-08-15 12:45:04 +02:00
cb710-mmc.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
cqhci-core.c mmc: cqhci: Add cqhci set_tran_desc() callback 2024-04-02 12:21:39 +02:00
cqhci-crypto.c blk-crypto: rename blk_keyslot_manager to blk_crypto_profile 2021-10-21 10:49:32 -06:00
cqhci-crypto.h mmc: core: Store pointer to bio_crypt_ctx in mmc_request 2021-08-24 10:15:32 +02:00
cqhci.h mmc: cqhci: Add cqhci set_tran_desc() callback 2024-04-02 12:21:39 +02:00
davinci_mmc.c mmc: davinci: Don't strip remove function when driver is builtin 2024-04-02 12:21:39 +02:00
dw_mmc-bluefield.c mmc: dw_mmc: Make dw_mci_pltfm_remove() return void 2023-06-12 15:16:18 +02:00
dw_mmc-exynos.c mmc: dw_mmc: Remove unused of_gpio.h 2024-03-05 13:03:52 +01:00
dw_mmc-exynos.h
dw_mmc-hi3798cv200.c mmc: dw_mmc-hi3798cv200: Remove unneeded assignment 2024-04-02 12:21:39 +02:00
dw_mmc-hi3798mv200.c mmc: dw_mmc-hi3798mv200: Remove unneeded assignment 2024-04-02 12:21:39 +02:00
dw_mmc-k3.c mmc: dw_mmc: Make dw_mci_pltfm_remove() return void 2023-06-12 15:16:18 +02:00
dw_mmc-pci.c
dw_mmc-pltfm.c mmc: dw_mmc: Make dw_mci_pltfm_remove() return void 2023-06-12 15:16:18 +02:00
dw_mmc-pltfm.h mmc: dw_mmc: Make dw_mci_pltfm_remove() return void 2023-06-12 15:16:18 +02:00
dw_mmc-rockchip.c mmc: dw_mmc: rockchip: Convert to platform remove callback returning void 2023-08-15 12:45:06 +02:00
dw_mmc-starfive.c mmc: starfive: Change tuning implementation 2023-09-27 12:13:18 +02:00
dw_mmc.c mmc: dw_mmc: Remove unused of_gpio.h 2024-03-05 13:03:52 +01:00
dw_mmc.h mmc: dw_mmc: Support setting f_min from host drivers 2022-03-07 12:56:38 +01:00
jz4740_mmc.c mmc: jz4740: Use device_get_match_data() 2023-10-10 15:54:57 +02:00
Kconfig mmc: sdhci-of-dwcmshc: Implement SDHCI CQE support 2024-04-02 12:21:39 +02:00
litex_mmc.c mmc: litex_mmc: Convert to platform remove callback returning void 2023-08-15 12:45:03 +02:00
Makefile mmc: dw_mmc: add support for hi3798mv200 2024-03-05 13:01:53 +01:00
meson-gx-mmc.c mmc: meson-gx: Remove setting of CMD_CFG_ERROR 2023-10-27 11:59:14 +02:00
meson-mx-sdhc-clkc.c mmc: meson-mx-sdhc: Use devm_clk_hw_get_clk() for clock retrieval 2024-02-27 13:39:12 +01:00
meson-mx-sdhc-mmc.c mmc: meson-mx-sdhc: Remove .card_hw_reset callback 2024-02-27 13:39:12 +01:00
meson-mx-sdhc.h mmc: host: meson-mx-sdhc: new driver for the Amlogic Meson SDHC host 2020-05-28 11:22:14 +02:00
meson-mx-sdio.c mmc: meson-mx-sdio: Convert to platform remove callback returning void 2023-08-15 12:45:05 +02:00
mmc_hsq.c mmc: hsq: Improve random I/O write performance for 4k buffers 2023-09-27 12:13:18 +02:00
mmc_hsq.h mmc: hsq: Improve random I/O write performance for 4k buffers 2023-09-27 12:13:18 +02:00
mmc_spi.c spi: Updates for v6.9 2024-03-13 11:07:37 -07:00
mmci.c mmc: mmci: stm32: add SDIO in-band interrupt mode 2023-12-07 14:08:44 +01:00
mmci.h mmc: mmci: stm32: add SDIO in-band interrupt mode 2023-12-07 14:08:44 +01:00
mmci_qcom_dml.c
mmci_stm32_sdmmc.c mmc: mmci: stm32: fix DMA API overlapping mappings warning 2024-02-14 11:05:27 +01:00
moxart-mmc.c Revert "mmc: moxart-mmc: Use sg_miter for PIO" 2024-06-20 10:57:44 +02:00
mtk-sd.c mmc: mtk-sd: Remove unused of_gpio.h 2024-04-02 12:21:38 +02:00
mvsdio.c mmc: mvsdio: Use sg_miter for PIO 2024-02-13 13:40:56 +01:00
mvsdio.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
mxcmmc.c mmc: mxcmmc: Use sg_miter for PIO 2024-02-13 13:40:56 +01:00
mxs-mmc.c mmc: mxs-mmc: Convert to platform remove callback returning void 2023-08-15 12:45:05 +02:00
of_mmc_spi.c mmc: mmc_spi: parse speed mode options 2022-04-26 14:05:19 +02:00
omap.c GPIO regression fixes for n8x0 2024-04-09 16:17:37 +02:00
omap_hsmmc.c mmc: omap_hsmmc: Convert to platform remove callback returning void 2023-08-15 12:45:04 +02:00
owl-mmc.c mmc: owl: Convert to platform remove callback returning void 2023-08-15 12:45:06 +02:00
pxamci.c mmc: pxamci: Convert to platform remove callback returning void 2023-08-15 12:45:05 +02:00
pxamci.h
renesas_sdhi.h mmc: renesas_sdhi: use typedef for dma_filter_fn 2024-02-13 17:43:07 +01:00
renesas_sdhi_core.c mmc: renesas_sdhi: Set the SDBUF after reset 2024-05-03 14:30:49 +02:00
renesas_sdhi_internal_dmac.c mmc: renesas_sdhi: Add compatible string for RZ/G2L family, RZ/G3S, and RZ/V2M SoCs 2024-05-03 14:33:05 +02:00
renesas_sdhi_sys_dmac.c mmc: renesas_sdhi: Convert to platform remove callback returning void 2023-08-15 12:48:20 +02:00
rtsx_pci_sdmmc.c mmc: rtsx: add rts5264 to support sd express card 2023-12-15 17:27:04 +01:00
rtsx_usb_sdmmc.c mmc: rtsx_usb_sdmmc: Convert to platform remove callback returning void 2023-08-15 12:45:05 +02:00
sdhci-acpi.c mmc: sdhci-acpi: Add quirk to enable pull-up on the card-detect GPIO on Asus T100TA 2024-04-26 06:46:58 +02:00
sdhci-bcm-kona.c mmc: sdhci-bcm-kona: Use sdhci_pltfm_remove() 2023-08-15 13:35:11 +02:00
sdhci-brcmstb.c mmc: sdhci-brcmstb: check R1_STATUS for erase/trim/discard 2024-06-20 10:57:44 +02:00
sdhci-cadence.c mmc: sdhci-cadence: Use sdhci_pltfm_remove() 2023-08-15 13:35:20 +02:00
sdhci-cqhci.h mmc: cqhci: Provide helper for resetting both SDHCI and CQHCI 2022-11-07 13:28:47 +01:00
sdhci-dove.c mmc: sdhci-dove: Use sdhci_pltfm_remove() 2023-08-15 13:35:24 +02:00
sdhci-esdhc-imx.c mmc: sdhci-esdhc-imx: optimize the manual tuing logic to get the best timing 2023-09-26 15:12:44 +02:00
sdhci-esdhc-mcf.c mmc: sdhci-esdhc-mcf: Constify struct sdhci_ops 2024-04-26 06:47:04 +02:00
sdhci-esdhc.h mmc: sdhci-of-esdhc: make sure delay chain locked for HS400 2020-10-28 11:07:01 +01:00
sdhci-iproc.c mmc: sdhci-iproc: Use sdhci_pltfm_remove() 2023-08-15 13:35:32 +02:00
sdhci-milbeaut.c mmc: sdhci: milbeaut: Convert to platform remove callback returning void 2023-08-15 12:45:04 +02:00
sdhci-msm.c mmc: sdhci-msm: pervent access to suspended controller 2024-04-02 12:24:19 +02:00
sdhci-npcm.c mmc: sdhci-npcm: Add NPCM SDHCI driver 2023-10-10 15:54:26 +02:00
sdhci-of-arasan.c mmc: sdhci-of-arasan: Use sdhci_pltfm_remove() 2023-08-15 13:35:35 +02:00
sdhci-of-aspeed-test.c mmc: sdhci-of-aspeed: test: Use kunit_test_suite() macro 2022-07-11 17:13:32 -06:00
sdhci-of-aspeed.c mmc: core: Use a struct device* as in-param to mmc_of_parse_clk_phase() 2024-03-05 12:57:45 +01:00
sdhci-of-at91.c mmc: sdhci-of-at91: Use sdhci_pltfm_remove() 2023-08-15 13:35:39 +02:00
sdhci-of-dwcmshc.c mmc: sdhci-of-dwcmshc: Add tuning support for Sophgo CV1800B and SG200X 2024-04-26 06:47:04 +02:00
sdhci-of-esdhc.c mmc: sdhci-of-esdhc: Use sdhci_pltfm_remove() 2023-08-15 13:35:42 +02:00
sdhci-of-hlwd.c mmc: sdhci-pltfm: Rename sdhci_pltfm_register() 2023-08-15 13:36:02 +02:00
sdhci-of-sparx5.c mmc: sdhci-of-sparx5: Use sdhci_pltfm_remove() 2023-08-15 13:35:48 +02:00
sdhci-omap.c mmc: sdhci-omap: Constify struct sdhci_ops 2024-04-26 06:47:04 +02:00
sdhci-pci-arasan.c
sdhci-pci-core.c mmc: sdhci-pci: Convert PCIBIOS_* return codes to errnos 2024-06-20 10:57:44 +02:00
sdhci-pci-dwc-mshc.c
sdhci-pci-gli.c mmc: sdhci-pci-gli: Use pci_set_power_state(), not direct PMCSR writes 2024-04-02 12:34:06 +02:00
sdhci-pci-o2micro.c mmc: sdhci-pci-o2micro: Convert PCIBIOS_* return codes to errnos 2024-06-20 10:57:44 +02:00
sdhci-pci.h mmc: sdhci-pci-o2micro: add Bayhub new chip GG8 support for UHS-I 2023-08-11 12:30:54 +02:00
sdhci-pic32.c mmc: sdhci-pic32: Convert to platform remove callback returning void 2023-08-15 12:45:04 +02:00
sdhci-pltfm.c mmc: sdhci-pltfm: Make driver OF independent 2023-10-10 15:46:39 +02:00
sdhci-pltfm.h mmc: sdhci-pltfm: Rename sdhci_pltfm_register() 2023-08-15 13:36:02 +02:00
sdhci-pxav2.c mmc: sdhci-pxav2: Use sdhci_pltfm_remove() 2023-08-15 13:35:52 +02:00
sdhci-pxav3.c mmc: sdhci-pxav3: Convert to platform remove callback returning void 2023-08-15 12:45:04 +02:00
sdhci-s3c.c mmc: sdhci-s3c: Choose sdhci_ops based on variant 2024-04-26 06:47:04 +02:00
sdhci-spear.c mmc: sdhci-spear: Convert to platform remove callback returning void 2023-08-15 12:48:20 +02:00
sdhci-sprd.c mmc: sdhci-sprd: Constify struct sdhci_ops 2024-04-26 06:47:04 +02:00
sdhci-st.c mmc: sdhci-st: Use sdhci_pltfm_remove() 2023-08-15 13:35:56 +02:00
sdhci-tegra.c mmc: sdhci-tegra: Convert to platform remove callback returning void 2023-08-15 12:45:05 +02:00
sdhci-xenon-phy.c mmc: sdhci-xenon: add timeout for PHY init complete 2024-02-28 13:41:35 +01:00
sdhci-xenon.c mmc: xenon: Add ac5 support via bounce buffer 2024-01-05 11:03:56 +01:00
sdhci-xenon.h mmc: xenon: Add ac5 support via bounce buffer 2024-01-05 11:03:56 +01:00
sdhci.c mmc: sdhci: Do not lock spinlock around mmc_gpio_get_ro() 2024-06-20 16:42:30 +02:00
sdhci.h mmc: sdhci: Add support for "Tuning Error" interrupts 2024-04-26 06:46:27 +02:00
sdhci_am654.c mmc: sdhci_am654: Constify struct sdhci_ops 2024-04-26 06:47:04 +02:00
sdhci_f_sdh30.c mmc: sdhci_f_sdh30: Use sdhci_pltfm_remove() 2023-08-15 13:35:27 +02:00
sdhci_f_sdh30.h mmc: f-sdh30: Add support for non-removable media 2022-12-07 13:22:36 +01:00
sdricoh_cs.c mmc: sdricoh_cs: remove unused sdricoh_readw function 2023-03-24 16:48:01 +01:00
sh_mmcif.c mmc: sh_mmcif: Advance sg_miter before reading blocks 2024-02-28 13:31:31 +01:00
sunplus-mmc.c mmc: sunplus-mmc: Convert to platform remove callback returning void 2023-08-15 12:48:20 +02:00
sunxi-mmc.c mmc: sunxi: Convert to platform remove callback returning void 2023-08-15 12:45:03 +02:00
tifm_sd.c mmc: tifm_sd: Replace kmap_atomic() with kmap_local_page() 2022-12-07 13:22:32 +01:00
tmio_mmc.h mmc: tmio: remove tmio_mmc_k(un)map_atomic helpers 2022-12-07 13:22:36 +01:00
tmio_mmc_core.c mmc: tmio: comment the ERR_PTR usage in this driver 2024-03-05 13:10:52 +01:00
toshsd.c mmc: toshsd: fix return value check of mmc_add_host() 2022-12-07 13:22:34 +01:00
toshsd.h
uniphier-sd.c mmc: uniphier-sd: Convert to platform remove callback returning void 2023-08-15 12:48:21 +02:00
usdhi6rol0.c mmc: usdhi60rol0: Convert to platform remove callback returning void 2023-08-15 12:45:06 +02:00
ushc.c
via-sdmmc.c mmc: remove unnecessary set_drvdata() function 2023-08-09 15:44:17 +02:00
vub300.c mmc: vub300: fix an error code 2023-11-03 12:04:34 +01:00
wbsd.c mmc: wbsd: remove redundant assignment to variable id 2024-02-13 14:01:28 +01:00
wbsd.h
wmt-sdmmc.c mmc: wmt-sdmmc: remove an incorrect release_mem_region() call in the .remove function 2024-03-05 12:50:58 +01:00