]> git.karo-electronics.de Git - karo-tx-linux.git/commit
ENGR00225534-1 mmc: core: move ->request() call from atomic context
authorAdrian Hunter <adrian.hunter@intel.com>
Fri, 21 Sep 2012 10:28:42 +0000 (18:28 +0800)
committerLothar Waßmann <LW@KARO-electronics.de>
Fri, 24 May 2013 06:35:26 +0000 (08:35 +0200)
commiteb787fc1a0f73f527f0079f0e5d1c6c4a4ebaa2d
treea5289ec1ee083b0e5b34767187abd91613b0fb39
parenta81fd81fd9df7a11df6cf6f1a65c29eafea1c87a
ENGR00225534-1 mmc: core: move ->request() call from atomic context

mmc_request_done() is sometimes called from interrupt or other atomic
context.  Mostly all mmc_request_done() does is complete(), however it
contains code to retry on error, which uses ->request().  As the error
path is certainly not performance critical, this may be moved to the
waiting function mmc_wait_for_req_done().

This allows ->request() to use runtime PM get_sync() and guarantee it
is never in an atomic context.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Acked-by: Ulf Hansson <ulf.hansson@stericsson.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
Acked-by: Ryan QIAN <b32804@freescale.com>
Signed-off-by: Dong Aisheng <b29396@freescale.com>
drivers/mmc/core/core.c