diff options
author | Jeff Garzik <jeff@garzik.org> | 2008-01-18 14:40:47 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2008-01-18 14:40:47 -0500 |
commit | 9559cc239d6cf50bf64de0bd7662103238e84274 (patch) | |
tree | 53becf36c23e2dc9931c3363f71ec0a81d131b79 /drivers/net | |
parent | e236ed23f81430dc020304e2efbc0cfcdf47d9a7 (diff) | |
parent | d101f6496d51cbeb285f531dff059ce0ef28ffe3 (diff) |
Merge branch 'fixes-jgarzik' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 into upstream-fixes
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/wireless/b43/rfkill.c | 11 | ||||
-rw-r--r-- | drivers/net/wireless/hostap/hostap_plx.c | 6 | ||||
-rw-r--r-- | drivers/net/wireless/ipw2200.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/libertas/if_sdio.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2x00pci.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2x00usb.c | 11 |
6 files changed, 24 insertions, 12 deletions
diff --git a/drivers/net/wireless/b43/rfkill.c b/drivers/net/wireless/b43/rfkill.c index 98cf70c5fd47..11f53cb1139e 100644 --- a/drivers/net/wireless/b43/rfkill.c +++ b/drivers/net/wireless/b43/rfkill.c | |||
@@ -138,8 +138,11 @@ void b43_rfkill_init(struct b43_wldev *dev) | |||
138 | rfk->rfkill->user_claim_unsupported = 1; | 138 | rfk->rfkill->user_claim_unsupported = 1; |
139 | 139 | ||
140 | rfk->poll_dev = input_allocate_polled_device(); | 140 | rfk->poll_dev = input_allocate_polled_device(); |
141 | if (!rfk->poll_dev) | 141 | if (!rfk->poll_dev) { |
142 | goto err_free_rfk; | 142 | rfkill_free(rfk->rfkill); |
143 | goto err_freed_rfk; | ||
144 | } | ||
145 | |||
143 | rfk->poll_dev->private = dev; | 146 | rfk->poll_dev->private = dev; |
144 | rfk->poll_dev->poll = b43_rfkill_poll; | 147 | rfk->poll_dev->poll = b43_rfkill_poll; |
145 | rfk->poll_dev->poll_interval = 1000; /* msecs */ | 148 | rfk->poll_dev->poll_interval = 1000; /* msecs */ |
@@ -175,8 +178,7 @@ err_unreg_rfk: | |||
175 | err_free_polldev: | 178 | err_free_polldev: |
176 | input_free_polled_device(rfk->poll_dev); | 179 | input_free_polled_device(rfk->poll_dev); |
177 | rfk->poll_dev = NULL; | 180 | rfk->poll_dev = NULL; |
178 | err_free_rfk: | 181 | err_freed_rfk: |
179 | rfkill_free(rfk->rfkill); | ||
180 | rfk->rfkill = NULL; | 182 | rfk->rfkill = NULL; |
181 | out_error: | 183 | out_error: |
182 | rfk->registered = 0; | 184 | rfk->registered = 0; |
@@ -195,6 +197,5 @@ void b43_rfkill_exit(struct b43_wldev *dev) | |||
195 | rfkill_unregister(rfk->rfkill); | 197 | rfkill_unregister(rfk->rfkill); |
196 | input_free_polled_device(rfk->poll_dev); | 198 | input_free_polled_device(rfk->poll_dev); |
197 | rfk->poll_dev = NULL; | 199 | rfk->poll_dev = NULL; |
198 | rfkill_free(rfk->rfkill); | ||
199 | rfk->rfkill = NULL; | 200 | rfk->rfkill = NULL; |
200 | } | 201 | } |
diff --git a/drivers/net/wireless/hostap/hostap_plx.c b/drivers/net/wireless/hostap/hostap_plx.c index 040dc3e36410..cbf15d703201 100644 --- a/drivers/net/wireless/hostap/hostap_plx.c +++ b/drivers/net/wireless/hostap/hostap_plx.c | |||
@@ -608,7 +608,7 @@ static void prism2_plx_remove(struct pci_dev *pdev) | |||
608 | 608 | ||
609 | MODULE_DEVICE_TABLE(pci, prism2_plx_id_table); | 609 | MODULE_DEVICE_TABLE(pci, prism2_plx_id_table); |
610 | 610 | ||
611 | static struct pci_driver prism2_plx_drv_id = { | 611 | static struct pci_driver prism2_plx_driver = { |
612 | .name = "hostap_plx", | 612 | .name = "hostap_plx", |
613 | .id_table = prism2_plx_id_table, | 613 | .id_table = prism2_plx_id_table, |
614 | .probe = prism2_plx_probe, | 614 | .probe = prism2_plx_probe, |
@@ -618,13 +618,13 @@ static struct pci_driver prism2_plx_drv_id = { | |||
618 | 618 | ||
619 | static int __init init_prism2_plx(void) | 619 | static int __init init_prism2_plx(void) |
620 | { | 620 | { |
621 | return pci_register_driver(&prism2_plx_drv_id); | 621 | return pci_register_driver(&prism2_plx_driver); |
622 | } | 622 | } |
623 | 623 | ||
624 | 624 | ||
625 | static void __exit exit_prism2_plx(void) | 625 | static void __exit exit_prism2_plx(void) |
626 | { | 626 | { |
627 | pci_unregister_driver(&prism2_plx_drv_id); | 627 | pci_unregister_driver(&prism2_plx_driver); |
628 | } | 628 | } |
629 | 629 | ||
630 | 630 | ||
diff --git a/drivers/net/wireless/ipw2200.c b/drivers/net/wireless/ipw2200.c index 88062c1318a8..003f73f89efa 100644 --- a/drivers/net/wireless/ipw2200.c +++ b/drivers/net/wireless/ipw2200.c | |||
@@ -4935,7 +4935,7 @@ static int ipw_queue_reset(struct ipw_priv *priv) | |||
4935 | /** | 4935 | /** |
4936 | * Reclaim Tx queue entries no more used by NIC. | 4936 | * Reclaim Tx queue entries no more used by NIC. |
4937 | * | 4937 | * |
4938 | * When FW adwances 'R' index, all entries between old and | 4938 | * When FW advances 'R' index, all entries between old and |
4939 | * new 'R' index need to be reclaimed. As result, some free space | 4939 | * new 'R' index need to be reclaimed. As result, some free space |
4940 | * forms. If there is enough free space (> low mark), wake Tx queue. | 4940 | * forms. If there is enough free space (> low mark), wake Tx queue. |
4941 | * | 4941 | * |
diff --git a/drivers/net/wireless/libertas/if_sdio.c b/drivers/net/wireless/libertas/if_sdio.c index b24425f74883..4f1efb108c28 100644 --- a/drivers/net/wireless/libertas/if_sdio.c +++ b/drivers/net/wireless/libertas/if_sdio.c | |||
@@ -871,6 +871,10 @@ static int if_sdio_probe(struct sdio_func *func, | |||
871 | if (sscanf(func->card->info[i], | 871 | if (sscanf(func->card->info[i], |
872 | "ID: %x", &model) == 1) | 872 | "ID: %x", &model) == 1) |
873 | break; | 873 | break; |
874 | if (!strcmp(func->card->info[i], "IBIS Wireless SDIO Card")) { | ||
875 | model = 4; | ||
876 | break; | ||
877 | } | ||
874 | } | 878 | } |
875 | 879 | ||
876 | if (i == func->card->num_info) { | 880 | if (i == func->card->num_info) { |
diff --git a/drivers/net/wireless/rt2x00/rt2x00pci.c b/drivers/net/wireless/rt2x00/rt2x00pci.c index 6d5d9aba0b73..04663eb31950 100644 --- a/drivers/net/wireless/rt2x00/rt2x00pci.c +++ b/drivers/net/wireless/rt2x00/rt2x00pci.c | |||
@@ -149,7 +149,7 @@ void rt2x00pci_rxdone(struct rt2x00_dev *rt2x00dev) | |||
149 | * The data behind the ieee80211 header must be | 149 | * The data behind the ieee80211 header must be |
150 | * aligned on a 4 byte boundary. | 150 | * aligned on a 4 byte boundary. |
151 | */ | 151 | */ |
152 | align = NET_IP_ALIGN + (2 * (header_size % 4 == 0)); | 152 | align = header_size % 4; |
153 | 153 | ||
154 | /* | 154 | /* |
155 | * Allocate the sk_buffer, initialize it and copy | 155 | * Allocate the sk_buffer, initialize it and copy |
diff --git a/drivers/net/wireless/rt2x00/rt2x00usb.c b/drivers/net/wireless/rt2x00/rt2x00usb.c index ab4797ed94c9..568d73847dca 100644 --- a/drivers/net/wireless/rt2x00/rt2x00usb.c +++ b/drivers/net/wireless/rt2x00/rt2x00usb.c | |||
@@ -245,13 +245,20 @@ static void rt2x00usb_interrupt_rxdone(struct urb *urb) | |||
245 | * Allocate a new sk buffer to replace the current one. | 245 | * Allocate a new sk buffer to replace the current one. |
246 | * If allocation fails, we should drop the current frame | 246 | * If allocation fails, we should drop the current frame |
247 | * so we can recycle the existing sk buffer for the new frame. | 247 | * so we can recycle the existing sk buffer for the new frame. |
248 | * As alignment we use 2 and not NET_IP_ALIGN because we need | ||
249 | * to be sure we have 2 bytes room in the head. (NET_IP_ALIGN | ||
250 | * can be 0 on some hardware). We use these 2 bytes for frame | ||
251 | * alignment later, we assume that the chance that | ||
252 | * header_size % 4 == 2 is bigger then header_size % 2 == 0 | ||
253 | * and thus optimize alignment by reserving the 2 bytes in | ||
254 | * advance. | ||
248 | */ | 255 | */ |
249 | frame_size = entry->ring->data_size + entry->ring->desc_size; | 256 | frame_size = entry->ring->data_size + entry->ring->desc_size; |
250 | skb = dev_alloc_skb(frame_size + NET_IP_ALIGN); | 257 | skb = dev_alloc_skb(frame_size + 2); |
251 | if (!skb) | 258 | if (!skb) |
252 | goto skip_entry; | 259 | goto skip_entry; |
253 | 260 | ||
254 | skb_reserve(skb, NET_IP_ALIGN); | 261 | skb_reserve(skb, 2); |
255 | skb_put(skb, frame_size); | 262 | skb_put(skb, frame_size); |
256 | 263 | ||
257 | /* | 264 | /* |