diff options
Diffstat (limited to 'drivers/net/usb')
-rw-r--r-- | drivers/net/usb/asix.c | 10 | ||||
-rw-r--r-- | drivers/net/usb/cdc-phonet.c | 10 | ||||
-rw-r--r-- | drivers/net/usb/cdc_ncm.c | 4 | ||||
-rw-r--r-- | drivers/net/usb/pegasus.c | 8 | ||||
-rw-r--r-- | drivers/net/usb/smsc75xx.c | 5 | ||||
-rw-r--r-- | drivers/net/usb/smsc95xx.c | 5 |
6 files changed, 25 insertions, 17 deletions
diff --git a/drivers/net/usb/asix.c b/drivers/net/usb/asix.c index e6fed4d4cb7..dbdca225b84 100644 --- a/drivers/net/usb/asix.c +++ b/drivers/net/usb/asix.c | |||
@@ -36,7 +36,7 @@ | |||
36 | #include <linux/usb/usbnet.h> | 36 | #include <linux/usb/usbnet.h> |
37 | #include <linux/slab.h> | 37 | #include <linux/slab.h> |
38 | 38 | ||
39 | #define DRIVER_VERSION "08-Nov-2011" | 39 | #define DRIVER_VERSION "22-Dec-2011" |
40 | #define DRIVER_NAME "asix" | 40 | #define DRIVER_NAME "asix" |
41 | 41 | ||
42 | /* ASIX AX8817X based USB 2.0 Ethernet Devices */ | 42 | /* ASIX AX8817X based USB 2.0 Ethernet Devices */ |
@@ -689,6 +689,10 @@ asix_get_wol(struct net_device *net, struct ethtool_wolinfo *wolinfo) | |||
689 | } | 689 | } |
690 | wolinfo->supported = WAKE_PHY | WAKE_MAGIC; | 690 | wolinfo->supported = WAKE_PHY | WAKE_MAGIC; |
691 | wolinfo->wolopts = 0; | 691 | wolinfo->wolopts = 0; |
692 | if (opt & AX_MONITOR_LINK) | ||
693 | wolinfo->wolopts |= WAKE_PHY; | ||
694 | if (opt & AX_MONITOR_MAGIC) | ||
695 | wolinfo->wolopts |= WAKE_MAGIC; | ||
692 | } | 696 | } |
693 | 697 | ||
694 | static int | 698 | static int |
@@ -1655,6 +1659,10 @@ static const struct usb_device_id products [] = { | |||
1655 | // ASIX 88772a | 1659 | // ASIX 88772a |
1656 | USB_DEVICE(0x0db0, 0xa877), | 1660 | USB_DEVICE(0x0db0, 0xa877), |
1657 | .driver_info = (unsigned long) &ax88772_info, | 1661 | .driver_info = (unsigned long) &ax88772_info, |
1662 | }, { | ||
1663 | // Asus USB Ethernet Adapter | ||
1664 | USB_DEVICE (0x0b95, 0x7e2b), | ||
1665 | .driver_info = (unsigned long) &ax88772_info, | ||
1658 | }, | 1666 | }, |
1659 | { }, // END | 1667 | { }, // END |
1660 | }; | 1668 | }; |
diff --git a/drivers/net/usb/cdc-phonet.c b/drivers/net/usb/cdc-phonet.c index a60d0069cc4..331e44056f5 100644 --- a/drivers/net/usb/cdc-phonet.c +++ b/drivers/net/usb/cdc-phonet.c | |||
@@ -130,7 +130,7 @@ static int rx_submit(struct usbpn_dev *pnd, struct urb *req, gfp_t gfp_flags) | |||
130 | struct page *page; | 130 | struct page *page; |
131 | int err; | 131 | int err; |
132 | 132 | ||
133 | page = __netdev_alloc_page(dev, gfp_flags); | 133 | page = alloc_page(gfp_flags); |
134 | if (!page) | 134 | if (!page) |
135 | return -ENOMEM; | 135 | return -ENOMEM; |
136 | 136 | ||
@@ -140,7 +140,7 @@ static int rx_submit(struct usbpn_dev *pnd, struct urb *req, gfp_t gfp_flags) | |||
140 | err = usb_submit_urb(req, gfp_flags); | 140 | err = usb_submit_urb(req, gfp_flags); |
141 | if (unlikely(err)) { | 141 | if (unlikely(err)) { |
142 | dev_dbg(&dev->dev, "RX submit error (%d)\n", err); | 142 | dev_dbg(&dev->dev, "RX submit error (%d)\n", err); |
143 | netdev_free_page(dev, page); | 143 | put_page(page); |
144 | } | 144 | } |
145 | return err; | 145 | return err; |
146 | } | 146 | } |
@@ -208,9 +208,9 @@ static void rx_complete(struct urb *req) | |||
208 | dev->stats.rx_errors++; | 208 | dev->stats.rx_errors++; |
209 | resubmit: | 209 | resubmit: |
210 | if (page) | 210 | if (page) |
211 | netdev_free_page(dev, page); | 211 | put_page(page); |
212 | if (req) | 212 | if (req) |
213 | rx_submit(pnd, req, GFP_ATOMIC); | 213 | rx_submit(pnd, req, GFP_ATOMIC | __GFP_COLD); |
214 | } | 214 | } |
215 | 215 | ||
216 | static int usbpn_close(struct net_device *dev); | 216 | static int usbpn_close(struct net_device *dev); |
@@ -229,7 +229,7 @@ static int usbpn_open(struct net_device *dev) | |||
229 | for (i = 0; i < rxq_size; i++) { | 229 | for (i = 0; i < rxq_size; i++) { |
230 | struct urb *req = usb_alloc_urb(0, GFP_KERNEL); | 230 | struct urb *req = usb_alloc_urb(0, GFP_KERNEL); |
231 | 231 | ||
232 | if (!req || rx_submit(pnd, req, GFP_KERNEL)) { | 232 | if (!req || rx_submit(pnd, req, GFP_KERNEL | __GFP_COLD)) { |
233 | usbpn_close(dev); | 233 | usbpn_close(dev); |
234 | return -ENOMEM; | 234 | return -ENOMEM; |
235 | } | 235 | } |
diff --git a/drivers/net/usb/cdc_ncm.c b/drivers/net/usb/cdc_ncm.c index f06fb78383a..009dd0f1853 100644 --- a/drivers/net/usb/cdc_ncm.c +++ b/drivers/net/usb/cdc_ncm.c | |||
@@ -465,12 +465,10 @@ static int cdc_ncm_bind(struct usbnet *dev, struct usb_interface *intf) | |||
465 | int temp; | 465 | int temp; |
466 | u8 iface_no; | 466 | u8 iface_no; |
467 | 467 | ||
468 | ctx = kmalloc(sizeof(*ctx), GFP_KERNEL); | 468 | ctx = kzalloc(sizeof(*ctx), GFP_KERNEL); |
469 | if (ctx == NULL) | 469 | if (ctx == NULL) |
470 | return -ENODEV; | 470 | return -ENODEV; |
471 | 471 | ||
472 | memset(ctx, 0, sizeof(*ctx)); | ||
473 | |||
474 | init_timer(&ctx->tx_timer); | 472 | init_timer(&ctx->tx_timer); |
475 | spin_lock_init(&ctx->mtx); | 473 | spin_lock_init(&ctx->mtx); |
476 | ctx->netdev = dev->net; | 474 | ctx->netdev = dev->net; |
diff --git a/drivers/net/usb/pegasus.c b/drivers/net/usb/pegasus.c index 769f5090bda..5d99b8cacd7 100644 --- a/drivers/net/usb/pegasus.c +++ b/drivers/net/usb/pegasus.c | |||
@@ -55,8 +55,8 @@ static const char driver_name[] = "pegasus"; | |||
55 | #define BMSR_MEDIA (BMSR_10HALF | BMSR_10FULL | BMSR_100HALF | \ | 55 | #define BMSR_MEDIA (BMSR_10HALF | BMSR_10FULL | BMSR_100HALF | \ |
56 | BMSR_100FULL | BMSR_ANEGCAPABLE) | 56 | BMSR_100FULL | BMSR_ANEGCAPABLE) |
57 | 57 | ||
58 | static int loopback; | 58 | static bool loopback; |
59 | static int mii_mode; | 59 | static bool mii_mode; |
60 | static char *devid; | 60 | static char *devid; |
61 | 61 | ||
62 | static struct usb_eth_dev usb_dev_id[] = { | 62 | static struct usb_eth_dev usb_dev_id[] = { |
@@ -517,7 +517,7 @@ static inline int reset_mac(pegasus_t *pegasus) | |||
517 | for (i = 0; i < REG_TIMEOUT; i++) { | 517 | for (i = 0; i < REG_TIMEOUT; i++) { |
518 | get_registers(pegasus, EthCtrl1, 1, &data); | 518 | get_registers(pegasus, EthCtrl1, 1, &data); |
519 | if (~data & 0x08) { | 519 | if (~data & 0x08) { |
520 | if (loopback & 1) | 520 | if (loopback) |
521 | break; | 521 | break; |
522 | if (mii_mode && (pegasus->features & HAS_HOME_PNA)) | 522 | if (mii_mode && (pegasus->features & HAS_HOME_PNA)) |
523 | set_register(pegasus, Gpio1, 0x34); | 523 | set_register(pegasus, Gpio1, 0x34); |
@@ -561,7 +561,7 @@ static int enable_net_traffic(struct net_device *dev, struct usb_device *usb) | |||
561 | data[1] |= 0x10; /* set 100 Mbps */ | 561 | data[1] |= 0x10; /* set 100 Mbps */ |
562 | if (mii_mode) | 562 | if (mii_mode) |
563 | data[1] = 0; | 563 | data[1] = 0; |
564 | data[2] = (loopback & 1) ? 0x09 : 0x01; | 564 | data[2] = loopback ? 0x09 : 0x01; |
565 | 565 | ||
566 | memcpy(pegasus->eth_regs, data, sizeof(data)); | 566 | memcpy(pegasus->eth_regs, data, sizeof(data)); |
567 | ret = set_registers(pegasus, EthCtrl0, 3, data); | 567 | ret = set_registers(pegasus, EthCtrl0, 3, data); |
diff --git a/drivers/net/usb/smsc75xx.c b/drivers/net/usb/smsc75xx.c index a5b9b12ef26..0d5da82f0ff 100644 --- a/drivers/net/usb/smsc75xx.c +++ b/drivers/net/usb/smsc75xx.c | |||
@@ -76,7 +76,7 @@ struct usb_context { | |||
76 | struct usbnet *dev; | 76 | struct usbnet *dev; |
77 | }; | 77 | }; |
78 | 78 | ||
79 | static int turbo_mode = true; | 79 | static bool turbo_mode = true; |
80 | module_param(turbo_mode, bool, 0644); | 80 | module_param(turbo_mode, bool, 0644); |
81 | MODULE_PARM_DESC(turbo_mode, "Enable multiple frames per Rx transaction"); | 81 | MODULE_PARM_DESC(turbo_mode, "Enable multiple frames per Rx transaction"); |
82 | 82 | ||
@@ -728,7 +728,8 @@ static int smsc75xx_change_mtu(struct net_device *netdev, int new_mtu) | |||
728 | } | 728 | } |
729 | 729 | ||
730 | /* Enable or disable Rx checksum offload engine */ | 730 | /* Enable or disable Rx checksum offload engine */ |
731 | static int smsc75xx_set_features(struct net_device *netdev, u32 features) | 731 | static int smsc75xx_set_features(struct net_device *netdev, |
732 | netdev_features_t features) | ||
732 | { | 733 | { |
733 | struct usbnet *dev = netdev_priv(netdev); | 734 | struct usbnet *dev = netdev_priv(netdev); |
734 | struct smsc75xx_priv *pdata = (struct smsc75xx_priv *)(dev->data[0]); | 735 | struct smsc75xx_priv *pdata = (struct smsc75xx_priv *)(dev->data[0]); |
diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c index eff67678c5a..db217ad66f2 100644 --- a/drivers/net/usb/smsc95xx.c +++ b/drivers/net/usb/smsc95xx.c | |||
@@ -59,7 +59,7 @@ struct usb_context { | |||
59 | struct usbnet *dev; | 59 | struct usbnet *dev; |
60 | }; | 60 | }; |
61 | 61 | ||
62 | static int turbo_mode = true; | 62 | static bool turbo_mode = true; |
63 | module_param(turbo_mode, bool, 0644); | 63 | module_param(turbo_mode, bool, 0644); |
64 | MODULE_PARM_DESC(turbo_mode, "Enable multiple frames per Rx transaction"); | 64 | MODULE_PARM_DESC(turbo_mode, "Enable multiple frames per Rx transaction"); |
65 | 65 | ||
@@ -516,7 +516,8 @@ static void smsc95xx_status(struct usbnet *dev, struct urb *urb) | |||
516 | } | 516 | } |
517 | 517 | ||
518 | /* Enable or disable Tx & Rx checksum offload engines */ | 518 | /* Enable or disable Tx & Rx checksum offload engines */ |
519 | static int smsc95xx_set_features(struct net_device *netdev, u32 features) | 519 | static int smsc95xx_set_features(struct net_device *netdev, |
520 | netdev_features_t features) | ||
520 | { | 521 | { |
521 | struct usbnet *dev = netdev_priv(netdev); | 522 | struct usbnet *dev = netdev_priv(netdev); |
522 | u32 read_buf; | 523 | u32 read_buf; |