Message ID | 20110104172738.GA16940@void.printf.net (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c index 286e6ce..b8e3b97 100644 --- a/drivers/mmc/core/core.c +++ b/drivers/mmc/core/core.c @@ -1529,13 +1529,15 @@ void mmc_rescan(struct work_struct *work) */ if (host->bus_ops && host->bus_ops->detect && !host->bus_dead && mmc_card_is_removable(host)) host->bus_ops->detect(host); + /* + * Let mmc_bus_put() free the bus/bus_ops if we've found that + * the card is no longer present. + */ mmc_bus_put(host); - - mmc_bus_get(host); /* if there still is a card present, stop here */ if (host->bus_ops != NULL) { mmc_bus_put(host);