diff --git a/block/blk-mq.c b/block/blk-mq.c
index 9c1c1544bac31623665e0055d0e3db21ed987a44..6847f014606b1a3996d8acee1a8b141ecb598045 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -2438,6 +2438,9 @@ static void blk_mq_map_swqueue(struct request_queue *q)
 
 		ctx = per_cpu_ptr(q->queue_ctx, i);
 		for (j = 0; j < set->nr_maps; j++) {
+			if (!set->map[j].nr_queues)
+				continue;
+
 			hctx = blk_mq_map_queue_type(q, j, i);
 
 			/*