diff options
| author | Jeff Garzik <jgarzik@pobox.com> | 2005-09-08 05:43:49 -0400 |
|---|---|---|
| committer | Jeff Garzik <jgarzik@pobox.com> | 2005-09-08 05:43:49 -0400 |
| commit | 1d6ae775d7a948c9575658eb41184fd2e506c0df (patch) | |
| tree | 8128a28e89d82f13bb8e3a2160382240c66e2816 /drivers/usb/net | |
| parent | 739cdbf1d8f0739b80035b80d69d871e33749b86 (diff) | |
| parent | caf39e87cc1182f7dae84eefc43ca14d54c78ef9 (diff) | |
Merge /spare/repo/linux-2.6/
Diffstat (limited to 'drivers/usb/net')
| -rw-r--r-- | drivers/usb/net/Makefile | 2 | ||||
| -rw-r--r-- | drivers/usb/net/usbnet.c | 21 | ||||
| -rw-r--r-- | drivers/usb/net/zd1201.c | 16 |
3 files changed, 18 insertions, 21 deletions
diff --git a/drivers/usb/net/Makefile b/drivers/usb/net/Makefile index 16f352195512..fe3fd4115e1e 100644 --- a/drivers/usb/net/Makefile +++ b/drivers/usb/net/Makefile | |||
| @@ -8,5 +8,3 @@ obj-$(CONFIG_USB_PEGASUS) += pegasus.o | |||
| 8 | obj-$(CONFIG_USB_RTL8150) += rtl8150.o | 8 | obj-$(CONFIG_USB_RTL8150) += rtl8150.o |
| 9 | obj-$(CONFIG_USB_USBNET) += usbnet.o | 9 | obj-$(CONFIG_USB_USBNET) += usbnet.o |
| 10 | obj-$(CONFIG_USB_ZD1201) += zd1201.o | 10 | obj-$(CONFIG_USB_ZD1201) += zd1201.o |
| 11 | |||
| 12 | CFLAGS_zd1201.o = -Idrivers/net/wireless/ | ||
diff --git a/drivers/usb/net/usbnet.c b/drivers/usb/net/usbnet.c index 4528a00c45b0..a2f67245f6da 100644 --- a/drivers/usb/net/usbnet.c +++ b/drivers/usb/net/usbnet.c | |||
| @@ -2903,19 +2903,18 @@ static struct net_device_stats *usbnet_get_stats (struct net_device *net) | |||
| 2903 | * completion callbacks. 2.5 should have fixed those bugs... | 2903 | * completion callbacks. 2.5 should have fixed those bugs... |
| 2904 | */ | 2904 | */ |
| 2905 | 2905 | ||
| 2906 | static void defer_bh (struct usbnet *dev, struct sk_buff *skb) | 2906 | static void defer_bh(struct usbnet *dev, struct sk_buff *skb, struct sk_buff_head *list) |
| 2907 | { | 2907 | { |
| 2908 | struct sk_buff_head *list = skb->list; | ||
| 2909 | unsigned long flags; | 2908 | unsigned long flags; |
| 2910 | 2909 | ||
| 2911 | spin_lock_irqsave (&list->lock, flags); | 2910 | spin_lock_irqsave(&list->lock, flags); |
| 2912 | __skb_unlink (skb, list); | 2911 | __skb_unlink(skb, list); |
| 2913 | spin_unlock (&list->lock); | 2912 | spin_unlock(&list->lock); |
| 2914 | spin_lock (&dev->done.lock); | 2913 | spin_lock(&dev->done.lock); |
| 2915 | __skb_queue_tail (&dev->done, skb); | 2914 | __skb_queue_tail(&dev->done, skb); |
| 2916 | if (dev->done.qlen == 1) | 2915 | if (dev->done.qlen == 1) |
| 2917 | tasklet_schedule (&dev->bh); | 2916 | tasklet_schedule(&dev->bh); |
| 2918 | spin_unlock_irqrestore (&dev->done.lock, flags); | 2917 | spin_unlock_irqrestore(&dev->done.lock, flags); |
| 2919 | } | 2918 | } |
| 2920 | 2919 | ||
| 2921 | /* some work can't be done in tasklets, so we use keventd | 2920 | /* some work can't be done in tasklets, so we use keventd |
| @@ -3120,7 +3119,7 @@ block: | |||
| 3120 | break; | 3119 | break; |
| 3121 | } | 3120 | } |
| 3122 | 3121 | ||
| 3123 | defer_bh (dev, skb); | 3122 | defer_bh(dev, skb, &dev->rxq); |
| 3124 | 3123 | ||
| 3125 | if (urb) { | 3124 | if (urb) { |
| 3126 | if (netif_running (dev->net) | 3125 | if (netif_running (dev->net) |
| @@ -3490,7 +3489,7 @@ static void tx_complete (struct urb *urb, struct pt_regs *regs) | |||
| 3490 | 3489 | ||
| 3491 | urb->dev = NULL; | 3490 | urb->dev = NULL; |
| 3492 | entry->state = tx_done; | 3491 | entry->state = tx_done; |
| 3493 | defer_bh (dev, skb); | 3492 | defer_bh(dev, skb, &dev->txq); |
| 3494 | } | 3493 | } |
| 3495 | 3494 | ||
| 3496 | /*-------------------------------------------------------------------------*/ | 3495 | /*-------------------------------------------------------------------------*/ |
diff --git a/drivers/usb/net/zd1201.c b/drivers/usb/net/zd1201.c index e32a80b39182..fc013978837e 100644 --- a/drivers/usb/net/zd1201.c +++ b/drivers/usb/net/zd1201.c | |||
| @@ -21,7 +21,7 @@ | |||
| 21 | #include <linux/string.h> | 21 | #include <linux/string.h> |
| 22 | #include <linux/if_arp.h> | 22 | #include <linux/if_arp.h> |
| 23 | #include <linux/firmware.h> | 23 | #include <linux/firmware.h> |
| 24 | #include <ieee802_11.h> | 24 | #include <net/ieee80211.h> |
| 25 | #include "zd1201.h" | 25 | #include "zd1201.h" |
| 26 | 26 | ||
| 27 | static struct usb_device_id zd1201_table[] = { | 27 | static struct usb_device_id zd1201_table[] = { |
| @@ -338,24 +338,24 @@ static void zd1201_usbrx(struct urb *urb, struct pt_regs *regs) | |||
| 338 | goto resubmit; | 338 | goto resubmit; |
| 339 | } | 339 | } |
| 340 | 340 | ||
| 341 | if ((seq & IEEE802_11_SCTL_FRAG) || | 341 | if ((seq & IEEE80211_SCTL_FRAG) || |
| 342 | (fc & IEEE802_11_FCTL_MOREFRAGS)) { | 342 | (fc & IEEE80211_FCTL_MOREFRAGS)) { |
| 343 | struct zd1201_frag *frag = NULL; | 343 | struct zd1201_frag *frag = NULL; |
| 344 | char *ptr; | 344 | char *ptr; |
| 345 | 345 | ||
| 346 | if (datalen<14) | 346 | if (datalen<14) |
| 347 | goto resubmit; | 347 | goto resubmit; |
| 348 | if ((seq & IEEE802_11_SCTL_FRAG) == 0) { | 348 | if ((seq & IEEE80211_SCTL_FRAG) == 0) { |
| 349 | frag = kmalloc(sizeof(*frag), GFP_ATOMIC); | 349 | frag = kmalloc(sizeof(*frag), GFP_ATOMIC); |
| 350 | if (!frag) | 350 | if (!frag) |
| 351 | goto resubmit; | 351 | goto resubmit; |
| 352 | skb = dev_alloc_skb(IEEE802_11_DATA_LEN +14+2); | 352 | skb = dev_alloc_skb(IEEE80211_DATA_LEN +14+2); |
| 353 | if (!skb) { | 353 | if (!skb) { |
| 354 | kfree(frag); | 354 | kfree(frag); |
| 355 | goto resubmit; | 355 | goto resubmit; |
| 356 | } | 356 | } |
| 357 | frag->skb = skb; | 357 | frag->skb = skb; |
| 358 | frag->seq = seq & IEEE802_11_SCTL_SEQ; | 358 | frag->seq = seq & IEEE80211_SCTL_SEQ; |
| 359 | skb_reserve(skb, 2); | 359 | skb_reserve(skb, 2); |
| 360 | memcpy(skb_put(skb, 12), &data[datalen-14], 12); | 360 | memcpy(skb_put(skb, 12), &data[datalen-14], 12); |
| 361 | memcpy(skb_put(skb, 2), &data[6], 2); | 361 | memcpy(skb_put(skb, 2), &data[6], 2); |
| @@ -364,7 +364,7 @@ static void zd1201_usbrx(struct urb *urb, struct pt_regs *regs) | |||
| 364 | goto resubmit; | 364 | goto resubmit; |
| 365 | } | 365 | } |
| 366 | hlist_for_each_entry(frag, node, &zd->fraglist, fnode) | 366 | hlist_for_each_entry(frag, node, &zd->fraglist, fnode) |
| 367 | if(frag->seq == (seq&IEEE802_11_SCTL_SEQ)) | 367 | if(frag->seq == (seq&IEEE80211_SCTL_SEQ)) |
| 368 | break; | 368 | break; |
| 369 | if (!frag) | 369 | if (!frag) |
| 370 | goto resubmit; | 370 | goto resubmit; |
| @@ -372,7 +372,7 @@ static void zd1201_usbrx(struct urb *urb, struct pt_regs *regs) | |||
| 372 | ptr = skb_put(skb, len); | 372 | ptr = skb_put(skb, len); |
| 373 | if (ptr) | 373 | if (ptr) |
| 374 | memcpy(ptr, data+8, len); | 374 | memcpy(ptr, data+8, len); |
| 375 | if (fc & IEEE802_11_FCTL_MOREFRAGS) | 375 | if (fc & IEEE80211_FCTL_MOREFRAGS) |
| 376 | goto resubmit; | 376 | goto resubmit; |
| 377 | hlist_del_init(&frag->fnode); | 377 | hlist_del_init(&frag->fnode); |
| 378 | kfree(frag); | 378 | kfree(frag); |
