Hi Johan, > -----Original Message----- > From: Johan Hovold > Sent: Wednesday, May 17, 2017 6:00 PM > > On Wed, May 17, 2017 at 04:53:07AM +0000, Yoshihiro Shimoda wrote: > > Hi Johan, > > > > > From: Johan Hovold > > > Sent: Tuesday, May 16, 2017 11:26 PM > > > > > > Make sure do drop the reference taken to the companion device during > > > resume. > > > > > > Fixes: d4d75128b8fd ("usb: host: ehci-platform: fix usb 1.1 device is not connected in system resume") > > > Cc: stable <stable@xxxxxxxxxxxxxxx> # 4.11 > > > Cc: Yoshihiro Shimoda <yoshihiro.shimoda.uh@xxxxxxxxxxx> > > > Signed-off-by: Johan Hovold <johan@xxxxxxxxxx> > > > --- > > > drivers/usb/host/ehci-platform.c | 4 +++- > > > 1 file changed, 3 insertions(+), 1 deletion(-) > > > > > > diff --git a/drivers/usb/host/ehci-platform.c b/drivers/usb/host/ehci-platform.c > > > index bc7b9be12f54..f1908ea9fbd8 100644 > > > --- a/drivers/usb/host/ehci-platform.c > > > +++ b/drivers/usb/host/ehci-platform.c > > > @@ -384,8 +384,10 @@ static int ehci_platform_resume(struct device *dev) > > > } > > > > > > companion_dev = usb_of_get_companion_dev(hcd->self.controller); > > > - if (companion_dev) > > > + if (companion_dev) { > > > device_pm_wait_for_dev(hcd->self.controller, companion_dev); > > > + put_device(companion_dev); > > > > Thank you for the patch! > > > > I should have added an API like "usb_of_put_companion_dev(dev)" > > and it calls "of_dev_put(to_platform_device(dev))". And then, > > ehci_platform_resume() can call the API instead of put_device(). > > But, adding new API is not good for stable. > > I don't think that's needed or desirable. The helper returns a pointer > to a struct device with an incremented refcount, so just using > put_device() when done is the right thing to do. > > Note that I added a comment about the refcount to the helper in patch > 2/2 as a reminder for any future users. Thank you for the reply! I understood it and I agreed with you! Best regards, Yoshihiro Shimoda