Commit b233f127 authored by Ming Lei's avatar Ming Lei Committed by Jens Axboe

block: really disable runtime-pm for blk-mq

Runtime PM isn't ready for blk-mq yet, and commit 765e40b6 ("block:
disable runtime-pm for blk-mq") tried to disable it. Unfortunately,
it can't take effect in that way since user space still can switch
it on via 'echo auto > /sys/block/sdN/device/power/control'.

This patch disables runtime-pm for blk-mq really by pm_runtime_disable()
and fixes all kinds of PM related kernel crash.

Cc: Tomas Janousek <tomi@nomi.cz>
Cc: Przemek Socha <soprwa@gmail.com>
Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: <stable@vger.kernel.org>
Reviewed-by: default avatarBart Van Assche <bart.vanassche@wdc.com>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Tested-by: default avatarPatrick Steinhardt <ps@pks.im>
Signed-off-by: default avatarMing Lei <ming.lei@redhat.com>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 99972f17
...@@ -3770,9 +3770,11 @@ EXPORT_SYMBOL(blk_finish_plug); ...@@ -3770,9 +3770,11 @@ EXPORT_SYMBOL(blk_finish_plug);
*/ */
void blk_pm_runtime_init(struct request_queue *q, struct device *dev) void blk_pm_runtime_init(struct request_queue *q, struct device *dev)
{ {
/* not support for RQF_PM and ->rpm_status in blk-mq yet */ /* Don't enable runtime PM for blk-mq until it is ready */
if (q->mq_ops) if (q->mq_ops) {
pm_runtime_disable(dev);
return; return;
}
q->dev = dev; q->dev = dev;
q->rpm_status = RPM_ACTIVE; q->rpm_status = RPM_ACTIVE;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment