diff --git a/block/blk-mq.c b/block/blk-mq.c
index e83d306907dafba44d77e0c0bfa4e9bf877b8bec..c88e6089746d82267c61d572baa25fe855704f22 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -479,7 +479,11 @@ static void blk_mq_requeue_work(struct work_struct *work)
 		blk_mq_insert_request(rq, false, false, false);
 	}
 
-	blk_mq_run_queues(q, false);
+	/*
+	 * Use the start variant of queue running here, so that running
+	 * the requeue work will kick stopped queues.
+	 */
+	blk_mq_start_hw_queues(q);
 }
 
 void blk_mq_add_to_requeue_list(struct request *rq, bool at_head)