@@ -148,6 +148,9 @@ void mmc_request_done(struct mmc_host *host, struct mmc_request *mrq)
cmd->retries = 0;
}
+ if (mmc_am_panic_task(host))
+ return;
+
if (err && cmd->retries && !mmc_card_removed(host->card)) {
/*
* Request starter must handle retries - see
@@ -340,7 +343,9 @@ static void mmc_wait_for_req_done(struct mmc_host *host,
struct mmc_command *cmd;
while (1) {
- wait_for_completion(&mrq->completion);
+ /* Panic task requests must be completed in ->request() */
+ if (!mmc_am_panic_task(host))
+ wait_for_completion(&mrq->completion);
cmd = mrq->cmd;
if (!cmd->error || !cmd->retries ||