aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/usb/cdc_ether.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-12-19 23:29:15 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2012-12-19 23:29:15 -0500
commit9eb127cc04c4005c8c0708ce92146d91da862b42 (patch)
treebebab2c136110edf32d6cf32f898871df9fbb0e6 /drivers/net/usb/cdc_ether.c
parente32795503de02da4e7e74a5e039cc268f6a0ecfb (diff)
parent152a2a8b5e1d4cbe91a7c66f1028db15164a3766 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Pull networking fixes from David Miller: 1) Really fix tuntap SKB use after free bug, from Eric Dumazet. 2) Adjust SKB data pointer to point past the transport header before calling icmpv6_notify() so that the headers are in the state which that function expects. From Duan Jiong. 3) Fix ambiguities in the new tuntap multi-queue APIs. From Jason Wang. 4) mISDN needs to use del_timer_sync(), from Konstantin Khlebnikov. 5) Don't destroy mutex after freeing up device private in mac802154, fix also from Konstantin Khlebnikov. 6) Fix INET request socket leak in TCP and DCCP, from Christoph Paasch. 7) SCTP HMAC kconfig rework, from Neil Horman. 8) Fix SCTP jprobes function signature, otherwise things explode, from Daniel Borkmann. 9) Fix typo in ipv6-offload Makefile variable reference, from Simon Arlott. 10) Don't fail USBNET open just because remote wakeup isn't supported, from Oliver Neukum. 11) be2net driver bug fixes from Sathya Perla. 12) SOLOS PCI ATM driver bug fixes from Nathan Williams and David Woodhouse. 13) Fix MTU changing regression in 8139cp driver, from John Greene. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (45 commits) solos-pci: ensure all TX packets are aligned to 4 bytes solos-pci: add firmware upgrade support for new models solos-pci: remove superfluous debug output solos-pci: add GPIO support for newer versions on Geos board 8139cp: Prevent dev_close/cp_interrupt race on MTU change net: qmi_wwan: add ZTE MF880 drivers/net: Use of_match_ptr() macro in smsc911x.c drivers/net: Use of_match_ptr() macro in smc91x.c ipv6: addrconf.c: remove unnecessary "if" bridge: Correctly encode addresses when dumping mdb entries bridge: Do not unregister all PF_BRIDGE rtnl operations use generic usbnet_manage_power() usbnet: generic manage_power() usbnet: handle PM failure gracefully ksz884x: fix receive polling race condition qlcnic: update driver version qlcnic: fix unused variable warnings net: fec: forbid FEC_PTP on SoCs that do not support be2net: fix wrong frag_idx reported by RX CQ be2net: fix be_close() to ensure all events are ack'ed ...
Diffstat (limited to 'drivers/net/usb/cdc_ether.c')
-rw-r--r--drivers/net/usb/cdc_ether.c45
1 files changed, 21 insertions, 24 deletions
diff --git a/drivers/net/usb/cdc_ether.c b/drivers/net/usb/cdc_ether.c
index d0129827602b..3f3d12d766e7 100644
--- a/drivers/net/usb/cdc_ether.c
+++ b/drivers/net/usb/cdc_ether.c
@@ -457,12 +457,6 @@ int usbnet_cdc_bind(struct usbnet *dev, struct usb_interface *intf)
457} 457}
458EXPORT_SYMBOL_GPL(usbnet_cdc_bind); 458EXPORT_SYMBOL_GPL(usbnet_cdc_bind);
459 459
460static int cdc_manage_power(struct usbnet *dev, int on)
461{
462 dev->intf->needs_remote_wakeup = on;
463 return 0;
464}
465
466static const struct driver_info cdc_info = { 460static const struct driver_info cdc_info = {
467 .description = "CDC Ethernet Device", 461 .description = "CDC Ethernet Device",
468 .flags = FLAG_ETHER | FLAG_POINTTOPOINT, 462 .flags = FLAG_ETHER | FLAG_POINTTOPOINT,
@@ -470,7 +464,7 @@ static const struct driver_info cdc_info = {
470 .bind = usbnet_cdc_bind, 464 .bind = usbnet_cdc_bind,
471 .unbind = usbnet_cdc_unbind, 465 .unbind = usbnet_cdc_unbind,
472 .status = usbnet_cdc_status, 466 .status = usbnet_cdc_status,
473 .manage_power = cdc_manage_power, 467 .manage_power = usbnet_manage_power,
474}; 468};
475 469
476static const struct driver_info wwan_info = { 470static const struct driver_info wwan_info = {
@@ -479,7 +473,7 @@ static const struct driver_info wwan_info = {
479 .bind = usbnet_cdc_bind, 473 .bind = usbnet_cdc_bind,
480 .unbind = usbnet_cdc_unbind, 474 .unbind = usbnet_cdc_unbind,
481 .status = usbnet_cdc_status, 475 .status = usbnet_cdc_status,
482 .manage_power = cdc_manage_power, 476 .manage_power = usbnet_manage_power,
483}; 477};
484 478
485/*-------------------------------------------------------------------------*/ 479/*-------------------------------------------------------------------------*/
@@ -487,6 +481,7 @@ static const struct driver_info wwan_info = {
487#define HUAWEI_VENDOR_ID 0x12D1 481#define HUAWEI_VENDOR_ID 0x12D1
488#define NOVATEL_VENDOR_ID 0x1410 482#define NOVATEL_VENDOR_ID 0x1410
489#define ZTE_VENDOR_ID 0x19D2 483#define ZTE_VENDOR_ID 0x19D2
484#define DELL_VENDOR_ID 0x413C
490 485
491static const struct usb_device_id products [] = { 486static const struct usb_device_id products [] = {
492/* 487/*
@@ -594,27 +589,29 @@ static const struct usb_device_id products [] = {
594 589
595/* Novatel USB551L and MC551 - handled by qmi_wwan */ 590/* Novatel USB551L and MC551 - handled by qmi_wwan */
596{ 591{
597 .match_flags = USB_DEVICE_ID_MATCH_VENDOR 592 USB_DEVICE_AND_INTERFACE_INFO(NOVATEL_VENDOR_ID, 0xB001, USB_CLASS_COMM,
598 | USB_DEVICE_ID_MATCH_PRODUCT 593 USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE),
599 | USB_DEVICE_ID_MATCH_INT_INFO,
600 .idVendor = NOVATEL_VENDOR_ID,
601 .idProduct = 0xB001,
602 .bInterfaceClass = USB_CLASS_COMM,
603 .bInterfaceSubClass = USB_CDC_SUBCLASS_ETHERNET,
604 .bInterfaceProtocol = USB_CDC_PROTO_NONE,
605 .driver_info = 0, 594 .driver_info = 0,
606}, 595},
607 596
608/* Novatel E362 - handled by qmi_wwan */ 597/* Novatel E362 - handled by qmi_wwan */
609{ 598{
610 .match_flags = USB_DEVICE_ID_MATCH_VENDOR 599 USB_DEVICE_AND_INTERFACE_INFO(NOVATEL_VENDOR_ID, 0x9010, USB_CLASS_COMM,
611 | USB_DEVICE_ID_MATCH_PRODUCT 600 USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE),
612 | USB_DEVICE_ID_MATCH_INT_INFO, 601 .driver_info = 0,
613 .idVendor = NOVATEL_VENDOR_ID, 602},
614 .idProduct = 0x9010, 603
615 .bInterfaceClass = USB_CLASS_COMM, 604/* Dell Wireless 5800 (Novatel E362) - handled by qmi_wwan */
616 .bInterfaceSubClass = USB_CDC_SUBCLASS_ETHERNET, 605{
617 .bInterfaceProtocol = USB_CDC_PROTO_NONE, 606 USB_DEVICE_AND_INTERFACE_INFO(DELL_VENDOR_ID, 0x8195, USB_CLASS_COMM,
607 USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE),
608 .driver_info = 0,
609},
610
611/* Dell Wireless 5800 (Novatel E362) - handled by qmi_wwan */
612{
613 USB_DEVICE_AND_INTERFACE_INFO(DELL_VENDOR_ID, 0x8196, USB_CLASS_COMM,
614 USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE),
618 .driver_info = 0, 615 .driver_info = 0,
619}, 616},
620 617