mmc: core: propagate removable attribute to driver core
authorThomas Weißschuh <linux@weissschuh.net>
Tue, 25 Jul 2023 14:17:25 +0000 (16:17 +0200)
committerUlf Hansson <ulf.hansson@linaro.org>
Wed, 9 Aug 2023 11:21:48 +0000 (13:21 +0200)
Userspace can use this to distinguish hotpluggable mmc devices such as
sdcards from non-hotpluggable ones such as eMMC.
One example is the lsblk tool from util-linux.

Note that dev_set_removable() is not related to GENHD_FL_REMOVABLE which
is not applicable as per the comment in drivers/mmc/core/block.c

Link: https://github.com/util-linux/util-linux/issues/2379
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Reviewed-by: Avri Altman <avri.altman@wdc.com>
Link: https://lore.kernel.org/r/20230725-mmc-removable-v1-1-b2e0c4f18e6d@weissschuh.net
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/core/bus.c

index 2c3074a605fc4a3756ce4718a7423647854f4b5e..0af96548e7da2e70a36f4694aa34a90dff9ef352 100644 (file)
@@ -310,6 +310,9 @@ int mmc_add_card(struct mmc_card *card)
 
 
        dev_set_name(&card->dev, "%s:%04x", mmc_hostname(card->host), card->rca);
+       dev_set_removable(&card->dev,
+                         mmc_card_is_removable(card->host) ?
+                         DEVICE_REMOVABLE : DEVICE_FIXED);
 
        switch (card->type) {
        case MMC_TYPE_MMC: