summaryrefslogtreecommitdiffstats
path: root/block
diff options
context:
space:
mode:
authorJens Axboe <axboe@fb.com>2014-06-25 08:22:34 -0600
committerJens Axboe <axboe@fb.com>2014-06-25 08:22:34 -0600
commit0ffbce80c263821161190f20e74a12f7aa8eab7b (patch)
tree870368a850b6ebb37e30c3d4407649f30f2d4741 /block
parent66cb45aa41315d1d9972cada354fbdf7870d7714 (diff)
downloadlinux-stable-0ffbce80c263821161190f20e74a12f7aa8eab7b.tar.gz
linux-stable-0ffbce80c263821161190f20e74a12f7aa8eab7b.tar.bz2
linux-stable-0ffbce80c263821161190f20e74a12f7aa8eab7b.zip
blk-mq: blk_mq_start_hw_queue() should use blk_mq_run_hw_queue()
Currently it calls __blk_mq_run_hw_queue(), which depends on the CPU placement being correct. This means it's not possible to call blk_mq_start_hw_queues(q) from a context that is correct for all queues, leading to triggering the WARN_ON(!cpumask_test_cpu(raw_smp_processor_id(), hctx->cpumask)); in __blk_mq_run_hw_queue(). Reported-by: Ming Lei <tom.leiming@gmail.com> Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'block')
-rw-r--r--block/blk-mq.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/block/blk-mq.c b/block/blk-mq.c
index 0ef2dc7f01bf..ad69ef657e85 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -878,7 +878,7 @@ void blk_mq_start_hw_queue(struct blk_mq_hw_ctx *hctx)
clear_bit(BLK_MQ_S_STOPPED, &hctx->state);
preempt_disable();
- __blk_mq_run_hw_queue(hctx);
+ blk_mq_run_hw_queue(hctx, false);
preempt_enable();
}
EXPORT_SYMBOL(blk_mq_start_hw_queue);