On Mon, Jul 30, 2018 at 08:02:19PM +0800, Ming Lei wrote: > 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. I can confirm that this patch fixes the kernel panics I've seen. For what it's worth, the USB hotplugging issues didn't re-surface, either. Thanks! > Cc: Christoph Hellwig <hch@xxxxxx> > Cc: Patrick Steinhardt <ps@xxxxxx> > Cc: Bart Van Assche <Bart.VanAssche@xxxxxxx> > Cc: Tomas Janousek <tomi@xxxxxxx> > Cc: Przemek Socha <soprwa@xxxxxxxxx> > Cc: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> > Cc: <stable@xxxxxxxxxxxxxxx> > Signed-off-by: Ming Lei <ming.lei@xxxxxxxxxx> > --- > block/blk-core.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/block/blk-core.c b/block/blk-core.c > index 03a4ea93a5f3..090b782df129 100644 > --- a/block/blk-core.c > +++ b/block/blk-core.c > @@ -3769,9 +3769,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; > -- > 2.9.5 >
Attachment:
signature.asc
Description: PGP signature