45 lines
1.5 KiB
Diff
45 lines
1.5 KiB
Diff
From: Ming Lei <ming.lei@redhat.com>
|
|
Subject: block: really disable runtime-pm for blk-mq
|
|
Date: Mon, 30 Jul 2018 20:02:19 +0800
|
|
Origin: https://patchwork.kernel.org/patch/10548975/
|
|
Bug-Debian: https://bugs.debian.org/904441
|
|
|
|
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 <hch@lst.de>
|
|
Cc: Patrick Steinhardt <ps@pks.im>
|
|
Cc: Bart Van Assche <Bart.VanAssche@wdc.com>
|
|
Cc: Tomas Janousek <tomi@nomi.cz>
|
|
Cc: Przemek Socha <soprwa@gmail.com>
|
|
Cc: Alan Stern <stern@rowland.harvard.edu>
|
|
Cc: <stable@vger.kernel.org>
|
|
Signed-off-by: Ming Lei <ming.lei@redhat.com>
|
|
Reviewed-by: Bart Van Assche <bart.vanassche@wdc.com>
|
|
Reviewed-by: Christoph Hellwig <hch@lst.de>
|
|
---
|
|
block/blk-core.c | 6 ++++--
|
|
1 file changed, 4 insertions(+), 2 deletions(-)
|
|
|
|
--- a/block/blk-core.c
|
|
+++ b/block/blk-core.c
|
|
@@ -3784,9 +3784,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;
|