Hi Adrian, >> diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c >> index 5278ffb..91d7721 100644 >> --- a/drivers/mmc/core/core.c >> +++ b/drivers/mmc/core/core.c >> @@ -259,7 +259,7 @@ static void mmc_wait_for_req_done(struct mmc_host *host, >> wait_for_completion(&mrq->completion); >> >> cmd = mrq->cmd; >> - if (!cmd->error || !cmd->retries) >> + if (!cmd->error || !cmd->retries || mmc_card_gone(host->card)) > host->card will be NULL > static void mmc_remove(struct mmc_host *host) > { > BUG_ON(!host); > BUG_ON(!host->card); > > mmc_remove_card(host->card); > host->card = NULL; > } > card is not freed until later. Please ignore this part. I jumped to conclusions. I had another look and there can't be any incoming requests when host->card is NULL. I need to study device_del() further, in order to understand the details. Regards, Per -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html