diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
index e08aa352bd5066b9fc2831c48d97844b705c0b95..3208890b10b389afd8cf08e5874cc865a1a9e817 100644
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@ -260,6 +260,8 @@ void mmc_claim_host(struct mmc_host *host)
 	DECLARE_WAITQUEUE(wait, current);
 	unsigned long flags;
 
+	might_sleep();
+
 	add_wait_queue(&host->wq, &wait);
 	spin_lock_irqsave(&host->lock, flags);
 	while (1) {