Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mmc: core: sd: Apply BROKEN_SD_DISCARD quirk earlier

Move the BROKEN_SD_DISCARD quirk for certain SanDisk SD cards from the
`mmc_blk_fixups[]` to `mmc_sd_fixups[]`. This ensures the quirk is
applied earlier in the device initialization process, aligning with the
reasoning in [1]. Applying the quirk sooner prevents the kernel from
incorrectly enabling discard support on affected cards during initial
setup.

[1] https://lore.kernel.org/all/20240820230631.GA436523@sony.com

Fixes: 07d2872bf4c8 ("mmc: core: Add SD card quirk for broken discard")
Signed-off-by: Avri Altman <avri.altman@sandisk.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20250526114445.675548-1-avri.altman@sandisk.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>

authored by

Avri Altman and committed by
Ulf Hansson
009c3a4b 19272b37

+6 -6
+6 -6
drivers/mmc/core/quirks.h
··· 44 44 0, -1ull, SDIO_ANY_ID, SDIO_ANY_ID, add_quirk_sd, 45 45 MMC_QUIRK_NO_UHS_DDR50_TUNING, EXT_CSD_REV_ANY), 46 46 47 + /* 48 + * Some SD cards reports discard support while they don't 49 + */ 50 + MMC_FIXUP(CID_NAME_ANY, CID_MANFID_SANDISK_SD, 0x5344, add_quirk_sd, 51 + MMC_QUIRK_BROKEN_SD_DISCARD), 52 + 47 53 END_FIXUP 48 54 }; 49 55 ··· 152 146 */ 153 147 MMC_FIXUP("M62704", CID_MANFID_KINGSTON, 0x0100, add_quirk_mmc, 154 148 MMC_QUIRK_TRIM_BROKEN), 155 - 156 - /* 157 - * Some SD cards reports discard support while they don't 158 - */ 159 - MMC_FIXUP(CID_NAME_ANY, CID_MANFID_SANDISK_SD, 0x5344, add_quirk_sd, 160 - MMC_QUIRK_BROKEN_SD_DISCARD), 161 149 162 150 END_FIXUP 163 151 };