diff --git a/drivers/mmc/host/bcm2835.c b/drivers/mmc/host/bcm2835.c
index cdfc24f1093b88ba03b47b863d59e38d42f05968..a7961c391de69e5b3eb9d90e0939fc714553b76f 100644
--- a/drivers/mmc/host/bcm2835.c
+++ b/drivers/mmc/host/bcm2835.c
@@ -597,7 +597,7 @@ static void bcm2835_finish_request(struct bcm2835_host *host)
 	struct dma_chan *terminate_chan = NULL;
 	struct mmc_request *mrq;
 
-	cancel_delayed_work(&host->timeout_work);
+	cancel_delayed_work_sync(&host->timeout_work);
 
 	mrq = host->mrq;