mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-19 04:14:49 +08:00
usbnet: fix usb_autopm_get_interface failure(v1)
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: Greg Kroah-Hartman <gregkh@suse.de> 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> Cc: stable@kernel.org Signed-off-by: Ming Lei <tom.leiming@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
6f9b901823
commit
b0786b430c
@ -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