lkml.org 
[lkml]   [2021]   [May]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.4 25/34] usb: core: hub: Fix PM reference leak in usb_port_resume()
    Date
    From: Bixuan Cui <cuibixuan@huawei.com>

    [ Upstream commit 025f97d188006eeee4417bb475a6878d1e0eed3f ]

    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: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Bixuan Cui <cuibixuan@huawei.com>
    Link: https://lore.kernel.org/r/20210408130831.56239-1-cuibixuan@huawei.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/usb/core/hub.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
    index 4d3de33885ff..cd61860cada5 100644
    --- a/drivers/usb/core/hub.c
    +++ b/drivers/usb/core/hub.c
    @@ -3537,7 +3537,7 @@ int usb_port_resume(struct usb_device *udev, pm_message_t msg)
    u16 portchange, portstatus;

    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) {
    dev_dbg(&udev->dev, "can't resume usb port, status %d\n",
    status);
    --
    2.30.2
    \
     
     \ /
      Last update: 2021-05-02 16:07    [W:2.838 / U:0.376 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site