From: Ming Lei Date: Mon, 30 Jul 2018 12:02:19 +0000 (+0800) Subject: block: really disable runtime-pm for blk-mq X-Git-Tag: archive/raspbian/4.18.10-2+rpi1^2^2^2~52 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=ae45d9a049d7df00ef515ee35708254bc473966b;p=linux.git block: really disable runtime-pm for blk-mq Runtime PM isn't ready for blk-mq yet, and commit 765e40b675a9 ("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: Christoph Hellwig Cc: Patrick Steinhardt Cc: Bart Van Assche Cc: Tomas Janousek Cc: Przemek Socha Cc: Alan Stern Cc: Signed-off-by: Ming Lei Reviewed-by: Bart Van Assche Reviewed-by: Christoph Hellwig Gbp-Pq: Topic bugfix/all Gbp-Pq: Name block-really-disable-runtime-pm-for-blk-mq.patch --- diff --git a/block/blk-core.c b/block/blk-core.c index 77938b512a7..acee92939e9 100644 --- a/block/blk-core.c +++ b/block/blk-core.c @@ -3787,9 +3787,11 @@ EXPORT_SYMBOL(blk_finish_plug); */ void blk_pm_runtime_init(struct request_queue *q, struct device *dev) { - /* not support for RQF_PM and ->rpm_status in blk-mq yet */ - if (q->mq_ops) + /* Don't enable runtime PM for blk-mq until it is ready */ + if (q->mq_ops) { + pm_runtime_disable(dev); return; + } q->dev = dev; q->rpm_status = RPM_ACTIVE;