ARM: 7216/1: mmc: mmci: Do not release spinlock in request_end
authorUlf Hansson <ulf.hansson@stericsson.com>
Tue, 13 Dec 2011 15:53:17 +0000 (16:53 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Fri, 20 Jan 2012 00:00:55 +0000 (00:00 +0000)
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>
drivers/mmc/host/mmci.c

index 0d955ffaf44e2c3ec5961f966687da3e675819d9..0e04138b17590ca5feb23cea1c3e9797dbf375ad 100644 (file)
@@ -166,14 +166,8 @@ mmci_request_end(struct mmci_host *host, struct mmc_request *mrq)
        host->mrq = 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));
        mmc_request_done(host->mmc, mrq);
-       spin_lock(&host->lock);
 }
 
 static void mmci_set_mask1(struct mmci_host *host, unsigned int mask)