diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c index 9544076998ff..13b58096feb6 100644 --- a/drivers/mmc/core/core.c +++ b/drivers/mmc/core/core.c @@ -3154,11 +3154,6 @@ void mmc_rescan(struct work_struct *work) if (host->bus_ops && !host->bus_dead) host->bus_ops->detect(host); -#if defined(CONFIG_SDC_QTI) - if (host->corrupted_card) - return; -#endif - host->detect_change = 0; /* @@ -3180,6 +3175,11 @@ void mmc_rescan(struct work_struct *work) */ mmc_bus_put(host); +#if defined(CONFIG_SDC_QTI) + if (host->corrupted_card) + goto out; +#endif + mmc_claim_host(host); if (mmc_card_is_removable(host) && host->ops->get_cd && host->ops->get_cd(host) == 0) {