Commit 025f97d1 authored by Bixuan Cui's avatar Bixuan Cui Committed by Greg Kroah-Hartman

usb: core: hub: Fix PM reference leak in usb_port_resume()

pm_runtime_get_sync will increment pm usage counter even it failed.
thus a pairing decrement is needed.
Fix it by replacing it with pm_runtime_resume_and_get to keep usage
counter balanced.
Reported-by: default avatarHulk Robot <hulkci@huawei.com>
Signed-off-by: default avatarBixuan Cui <cuibixuan@huawei.com>
Link: https://lore.kernel.org/r/20210408130831.56239-1-cuibixuan@huawei.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 9535b995
...@@ -3605,7 +3605,7 @@ int usb_port_resume(struct usb_device *udev, pm_message_t msg) ...@@ -3605,7 +3605,7 @@ int usb_port_resume(struct usb_device *udev, pm_message_t msg)
u16 portchange, portstatus; u16 portchange, portstatus;
if (!test_and_set_bit(port1, hub->child_usage_bits)) { if (!test_and_set_bit(port1, hub->child_usage_bits)) {
status = pm_runtime_get_sync(&port_dev->dev); status = pm_runtime_resume_and_get(&port_dev->dev);
if (status < 0) { if (status < 0) {
dev_dbg(&udev->dev, "can't resume usb port, status %d\n", dev_dbg(&udev->dev, "can't resume usb port, status %d\n",
status); status);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment