block: really disable runtime-pm for blk-mq (Closes: #904441)

This commit is contained in:
Ben Hutchings 2018-08-05 23:12:11 +08:00
parent 8fd88bdd2a
commit 8131366d14
3 changed files with 46 additions and 0 deletions

1
debian/changelog vendored
View File

@ -5,6 +5,7 @@ linux (4.17.8-2) UNRELEASED; urgency=medium
- gpu: host1x: Fix compiler errors by converting to dma_addr_t
* [ia64] sched: Disable SCHED_STACK_END_CHECK (Closes: #905461)
* mtd: powernv_flash: set of_node in mtd's dev (Closes: #904380)
* block: really disable runtime-pm for blk-mq (Closes: #904441)
-- Ben Hutchings <ben@decadent.org.uk> Sun, 05 Aug 2018 19:37:24 +0800

View File

@ -0,0 +1,44 @@
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;

View File

@ -95,6 +95,7 @@ bugfix/all/kbuild-include-addtree-remove-quotes-before-matching-path.patch
debian/revert-objtool-fix-config_stack_validation-y-warning.patch
bugfix/all/i40e-build-for-64-bit-targets-only.patch
bugfix/all/ib-fix-rdma_rxe-and-infiniband_rdmavt-dependencies-f.patch
bugfix/all/block-really-disable-runtime-pm-for-blk-mq.patch
# Miscellaneous features
features/all/kbuild-add-build-salt-to-the-kernel-and-modules.patch