From: Balaji T K Date: Fri, 25 Jan 2013 11:30:30 +0000 (+0530) Subject: mmc: core: expose RPMB partition only for CMD23 capable hosts X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=d0123ccac55088811bde4f76c4a3fdbd39c3cfba;p=openwrt%2Fstaging%2Fblogic.git mmc: core: expose RPMB partition only for CMD23 capable hosts SET_BLOCK_COUNT CMD23 is needed for all access to RPMB partition. If block count is not set by CMD23, all subsequent read/write commands fail as per eMMC specification. So, If the host does not support CMD23, do not expose RPMB partition. Accessing RPMB partition can cause hang / huge delay for hosts which do not support CMD23. Signed-off-by: Balaji T K Reported-and-Tested-by: Peter Ujfalusi Cc: stable Signed-off-by: Chris Ball --- diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c index dc17d4097f9a..0d7a9795a6da 100644 --- a/drivers/mmc/core/mmc.c +++ b/drivers/mmc/core/mmc.c @@ -496,7 +496,7 @@ static int mmc_read_ext_csd(struct mmc_card *card, u8 *ext_csd) * RPMB regions are defined in multiples of 128K. */ card->ext_csd.raw_rpmb_size_mult = ext_csd[EXT_CSD_RPMB_MULT]; - if (ext_csd[EXT_CSD_RPMB_MULT]) { + if (ext_csd[EXT_CSD_RPMB_MULT] && mmc_host_cmd23(card->host)) { mmc_part_add(card, ext_csd[EXT_CSD_RPMB_MULT] << 17, EXT_CSD_PART_CONFIG_ACC_RPMB, "rpmb", 0, false,