mirror of
https://github.com/torvalds/linux.git
synced 2026-06-10 07:32:29 +02:00
usbnet: fix usb_autopm_get_interface failure(v1)
commit b0786b430c upstream.
Since usbnet already took usb runtime pm, we have to
enable runtime pm for usb interface of usbnet, otherwise
usb_autopm_get_interface may return failure and cause
'ifconfig usb0 up' failed if USB_SUSPEND(RUNTIME_PM) is
enabled.
Cc: David Brownell <dbrownell@users.sourceforge.net>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Ben Hutchings <ben@decadent.org.uk>
Cc: Joe Perches <joe@perches.com>
Cc: Oliver Neukum <oliver@neukum.org>
Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Ming Lei <tom.leiming@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
99c0f4e21e
commit
6d1c2b8868
|
|
@ -45,6 +45,7 @@
|
|||
#include <linux/usb/usbnet.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
|
||||
#define DRIVER_VERSION "22-Aug-2005"
|
||||
|
||||
|
|
@ -1273,6 +1274,16 @@ usbnet_probe (struct usb_interface *udev, const struct usb_device_id *prod)
|
|||
struct usb_device *xdev;
|
||||
int status;
|
||||
const char *name;
|
||||
struct usb_driver *driver = to_usb_driver(udev->dev.driver);
|
||||
|
||||
/* usbnet already took usb runtime pm, so have to enable the feature
|
||||
* for usb interface, otherwise usb_autopm_get_interface may return
|
||||
* failure if USB_SUSPEND(RUNTIME_PM) is enabled.
|
||||
*/
|
||||
if (!driver->supports_autosuspend) {
|
||||
driver->supports_autosuspend = 1;
|
||||
pm_runtime_enable(&udev->dev);
|
||||
}
|
||||
|
||||
name = udev->dev.driver->name;
|
||||
info = (struct driver_info *) prod->driver_info;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user