Patch "usb: storage: fix runtime pm issue in usb_stor_probe2" has been added to the 4.8-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
usb: storage: fix runtime pm issue in usb_stor_probe2
to the 4.8-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
usb-storage-fix-runtime-pm-issue-in-usb_stor_probe2.patch
and it can be found in the queue-4.8 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
a094760b9a77f81ee3cbeff323ee77c928f41106Mon Sep 17 00:00:00 2001
From: Heiner Kallweit <[email protected]>
Date: Wed, 3 Aug 2016 21:46:47 +0200
Subject: usb: storage: fix runtime pm issue in usb_stor_probe2
From: Heiner Kallweit <[email protected]>
commit a094760b9a77f81ee3cbeff323ee77c928f41106 upstream.
Since commit 71723f95463d "PM / runtime: print error when activating a child to unactive parent" I see the following error message:
scsi host2: usb-storage 1-3:1.0
scsi host2: runtime PM trying to activate child device host2 but parent
(1-3:1.0) is not active
Digging into it it seems to be related to the problem described in the commit message for cd998ded5c12 "i2c: designware: Prevent runtime suspend during adapter registration" as scsi_add_host also calls device_add and after the call to device_add the parent device is suspended.
Fix this by using the approach from the mentioned commit and getting the runtime pm reference before calling scsi_add_host.
--- drivers/usb/storage/usb.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
drivers/usb/storage/usb.c +4 -2
@@ -1070,17 +1070,17 @@ int usb_stor_probe2(struct us_data *us) result =usb_stor_acquire_resources (us);if (result) goto BadDevice; +usb_autopm_get_interface_no_resume (us->pusb_intf);snprintf (us->scsi_name,sizeof (us->scsi_name),"usb-storage %s" ,dev_name (&us->pusb_intf->dev)); result =scsi_add_host (us_to_host (us), dev);if (result) {dev_warn (dev,"Unable to add the scsi host\n" ); - goto BadDevice; + goto HostAddErr; }/* Submit the delayed_work for SCSI-device scanning */ -usb_autopm_get_interface_no_resume (us->pusb_intf);set_bit (US_FLIDX_SCAN_PENDING , &us->dflags);if (delay_use >0 )
@@ -1090,6 +1090,8 @@ int usb_stor_probe2(struct us_data *us)return 0 ;/* We come here if there are any problems */ +HostAddErr: +usb_autopm_put_interface_no_suspend (us->pusb_intf); BadDevice:usb_stor_dbg (us,"storage_probe() failed\n" );release_everything (us);
Patches currently in stable-queue which might be from [email protected] are
queue-4.8/usb-storage-fix-runtime-pm-issue-in-usb_stor_probe2.patch