blk-mq: add warning to __blk_mq_run_hw_queue() for ints disabled
[sfrench/cifs-2.6.git] / block / blk-mq.c
index b70a4ad78b635798d0bfa2e25a7a755827079ac9..a5d369dc762202822fc8b9ce9845370c9e3096fc 100644 (file)
@@ -1097,9 +1097,19 @@ static void __blk_mq_run_hw_queue(struct blk_mq_hw_ctx *hctx)
 {
        int srcu_idx;
 
+       /*
+        * We should be running this queue from one of the CPUs that
+        * are mapped to it.
+        */
        WARN_ON(!cpumask_test_cpu(raw_smp_processor_id(), hctx->cpumask) &&
                cpu_online(hctx->next_cpu));
 
+       /*
+        * We can't run the queue inline with ints disabled. Ensure that
+        * we catch bad users of this early.
+        */
+       WARN_ON_ONCE(in_interrupt());
+
        if (!(hctx->flags & BLK_MQ_F_BLOCKING)) {
                rcu_read_lock();
                blk_mq_sched_dispatch_requests(hctx);