ARM: 7216/1: mmc: mmci: Do not release spinlock in request_end
The patch "mmc: core: move ->request() call from atomic context", is the reason to why this change is possible. This simplifies the error handling code execution path quite a lot and potentially also fixes some error handling hang problems. Tested-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Ulf Hansson <ulf.hansson@stericsson.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
859dd55d91
commit
5074d25dc9
@ -166,14 +166,8 @@ mmci_request_end(struct mmci_host *host, struct mmc_request *mrq)
|
|||||||
host->mrq = NULL;
|
host->mrq = NULL;
|
||||||
host->cmd = NULL;
|
host->cmd = NULL;
|
||||||
|
|
||||||
/*
|
|
||||||
* Need to drop the host lock here; mmc_request_done may call
|
|
||||||
* back into the driver...
|
|
||||||
*/
|
|
||||||
spin_unlock(&host->lock);
|
|
||||||
pm_runtime_put(mmc_dev(host->mmc));
|
pm_runtime_put(mmc_dev(host->mmc));
|
||||||
mmc_request_done(host->mmc, mrq);
|
mmc_request_done(host->mmc, mrq);
|
||||||
spin_lock(&host->lock);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mmci_set_mask1(struct mmci_host *host, unsigned int mask)
|
static void mmci_set_mask1(struct mmci_host *host, unsigned int mask)
|
||||||
|
Loading…
Reference in New Issue
Block a user