mmc: core: Claim host while freeing card
When SD/MMC card is removed without unmounting and then reinserted again while gendisk is freed. Partition invalidation and deletion may take more than 10secs during which SDCC controller can suspend due to runtime pm functionality. Once the block layer activity is done it claims host to detach card from MMC bus which triggers SDCC resume. As the host->card is NULL already there is a BUG_ON hit in mmc_sd_resume(). Fix this by claiming host even before we free host->card. CRs-Fixed: 284262 Signed-off-by: Sujith Reddy Thumma <sthumma@codeaurora.org> (cherry picked from commit 5eed6a9778440ef512f597b43368337a7ef9438b) Change-Id: I6b58aab1865a93a025fd9912200ab0beea21be92 Signed-off-by: Shruthi Krishna <skrish@codeaurora.org> Signed-off-by: David Brown <davidb@codeaurora.org>
This commit is contained in:
parent
267e3b25f4
commit
54e1258f91
2 changed files with 6 additions and 0 deletions
|
@ -1827,7 +1827,10 @@ static void mmc_remove(struct mmc_host *host)
|
|||
BUG_ON(!host->card);
|
||||
|
||||
mmc_remove_card(host->card);
|
||||
|
||||
mmc_claim_host(host);
|
||||
host->card = NULL;
|
||||
mmc_release_host(host);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -1110,7 +1110,10 @@ static void mmc_sd_remove(struct mmc_host *host)
|
|||
BUG_ON(!host->card);
|
||||
|
||||
mmc_remove_card(host->card);
|
||||
|
||||
mmc_claim_host(host);
|
||||
host->card = NULL;
|
||||
mmc_release_host(host);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Loading…
Add table
Reference in a new issue