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
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
cqhci-core.c mmc: cqhci: Add cqhci set_tran_desc() callback 2024-04-02 12:21:39 +02:00
cqhci-crypto.c
cqhci-crypto.h
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
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
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_qcom_dml.c
mmci_stm32_sdmmc.c mmc: mmci: stm32: fix DMA API overlapping mappings warning 2024-02-14 11:05:27 +01: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
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
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_hsmmc.c mmc: omap_hsmmc: Convert to platform remove callback returning void 2023-08-15 12:45:04 +02:00
omap.c GPIO regression fixes for n8x0 2024-04-09 16:17:37 +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_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
renesas_sdhi.h mmc: renesas_sdhi: use typedef for dma_filter_fn 2024-02-13 17:43:07 +01: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_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
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
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
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_core.c mmc: tmio: comment the ERR_PTR usage in this driver 2024-03-05 13:10:52 +01:00
tmio_mmc.h mmc: tmio: remove tmio_mmc_k(un)map_atomic helpers 2022-12-07 13:22:36 +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