usb: usb_autopm_get_interface use modern helper
authorOliver Neukum <oneukum@suse.com>
Thu, 18 Jan 2024 20:22:55 +0000 (21:22 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 28 Jan 2024 00:43:48 +0000 (16:43 -0800)
PM core now gives us a primitive that does not touch
the counter in an error case. Use it.

Signed-off-by: Oliver Neukum <oneukum@suse.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Link: https://lore.kernel.org/r/20240118202300.1616-1-oneukum@suse.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/core/driver.c

index e01b1913d02bf68aa3dd3ad4e3a30adb11585c5f..e02ba15f6e34fa7f442e613ab99bac83f792912b 100644 (file)
@@ -1710,9 +1710,7 @@ int usb_autoresume_device(struct usb_device *udev)
 {
        int     status;
 
-       status = pm_runtime_get_sync(&udev->dev);
-       if (status < 0)
-               pm_runtime_put_sync(&udev->dev);
+       status = pm_runtime_resume_and_get(&udev->dev);
        dev_vdbg(&udev->dev, "%s: cnt %d -> %d\n",
                        __func__, atomic_read(&udev->dev.power.usage_count),
                        status);
@@ -1818,9 +1816,7 @@ int usb_autopm_get_interface(struct usb_interface *intf)
 {
        int     status;
 
-       status = pm_runtime_get_sync(&intf->dev);
-       if (status < 0)
-               pm_runtime_put_sync(&intf->dev);
+       status = pm_runtime_resume_and_get(&intf->dev);
        dev_vdbg(&intf->dev, "%s: cnt %d -> %d\n",
                        __func__, atomic_read(&intf->dev.power.usage_count),
                        status);