aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/hostap
diff options
context:
space:
mode:
authorJonathan Herman <hermanjl@cs.unc.edu>2013-01-17 16:15:55 -0500
committerJonathan Herman <hermanjl@cs.unc.edu>2013-01-17 16:15:55 -0500
commit8dea78da5cee153b8af9c07a2745f6c55057fe12 (patch)
treea8f4d49d63b1ecc92f2fddceba0655b2472c5bd9 /drivers/net/wireless/hostap
parent406089d01562f1e2bf9f089fd7637009ebaad589 (diff)
Patched in Tegra support.
Diffstat (limited to 'drivers/net/wireless/hostap')
-rw-r--r--drivers/net/wireless/hostap/hostap_80211_rx.c3
-rw-r--r--drivers/net/wireless/hostap/hostap_80211_tx.c1
-rw-r--r--drivers/net/wireless/hostap/hostap_ap.c6
-rw-r--r--drivers/net/wireless/hostap/hostap_cs.c3
-rw-r--r--drivers/net/wireless/hostap/hostap_hw.c32
-rw-r--r--drivers/net/wireless/hostap/hostap_info.c5
-rw-r--r--drivers/net/wireless/hostap/hostap_ioctl.c20
-rw-r--r--drivers/net/wireless/hostap/hostap_main.c11
-rw-r--r--drivers/net/wireless/hostap/hostap_pci.c16
-rw-r--r--drivers/net/wireless/hostap/hostap_plx.c16
-rw-r--r--drivers/net/wireless/hostap/hostap_proc.c4
11 files changed, 74 insertions, 43 deletions
diff --git a/drivers/net/wireless/hostap/hostap_80211_rx.c b/drivers/net/wireless/hostap/hostap_80211_rx.c
index d39e3e24077..e0b3e8d406b 100644
--- a/drivers/net/wireless/hostap/hostap_80211_rx.c
+++ b/drivers/net/wireless/hostap/hostap_80211_rx.c
@@ -1,6 +1,5 @@
1#include <linux/etherdevice.h> 1#include <linux/etherdevice.h>
2#include <linux/slab.h> 2#include <linux/slab.h>
3#include <linux/export.h>
4#include <net/lib80211.h> 3#include <net/lib80211.h>
5#include <linux/if_arp.h> 4#include <linux/if_arp.h>
6 5
@@ -415,7 +414,7 @@ static void hostap_rx_sta_beacon(local_info_t *local, struct sk_buff *skb,
415 ssid = pos + 2; 414 ssid = pos + 2;
416 ssid_len = pos[1]; 415 ssid_len = pos[1];
417 break; 416 break;
418 case WLAN_EID_VENDOR_SPECIFIC: 417 case WLAN_EID_GENERIC:
419 if (pos[1] >= 4 && 418 if (pos[1] >= 4 &&
420 pos[2] == 0x00 && pos[3] == 0x50 && 419 pos[2] == 0x00 && pos[3] == 0x50 &&
421 pos[4] == 0xf2 && pos[5] == 1) { 420 pos[4] == 0xf2 && pos[5] == 1) {
diff --git a/drivers/net/wireless/hostap/hostap_80211_tx.c b/drivers/net/wireless/hostap/hostap_80211_tx.c
index 344a981a052..c34a3b7f129 100644
--- a/drivers/net/wireless/hostap/hostap_80211_tx.c
+++ b/drivers/net/wireless/hostap/hostap_80211_tx.c
@@ -1,5 +1,4 @@
1#include <linux/slab.h> 1#include <linux/slab.h>
2#include <linux/export.h>
3 2
4#include "hostap_80211.h" 3#include "hostap_80211.h"
5#include "hostap_common.h" 4#include "hostap_common.h"
diff --git a/drivers/net/wireless/hostap/hostap_ap.c b/drivers/net/wireless/hostap/hostap_ap.c
index c6ea995750d..3d05dc15c6b 100644
--- a/drivers/net/wireless/hostap/hostap_ap.c
+++ b/drivers/net/wireless/hostap/hostap_ap.c
@@ -21,8 +21,6 @@
21#include <linux/random.h> 21#include <linux/random.h>
22#include <linux/if_arp.h> 22#include <linux/if_arp.h>
23#include <linux/slab.h> 23#include <linux/slab.h>
24#include <linux/export.h>
25#include <linux/moduleparam.h>
26 24
27#include "hostap_wlan.h" 25#include "hostap_wlan.h"
28#include "hostap.h" 26#include "hostap.h"
@@ -860,10 +858,10 @@ void hostap_free_data(struct ap_data *ap)
860 return; 858 return;
861 } 859 }
862 860
863 flush_work(&ap->add_sta_proc_queue); 861 flush_work_sync(&ap->add_sta_proc_queue);
864 862
865#ifndef PRISM2_NO_KERNEL_IEEE80211_MGMT 863#ifndef PRISM2_NO_KERNEL_IEEE80211_MGMT
866 flush_work(&ap->wds_oper_queue); 864 flush_work_sync(&ap->wds_oper_queue);
867 if (ap->crypt) 865 if (ap->crypt)
868 ap->crypt->deinit(ap->crypt_priv); 866 ap->crypt->deinit(ap->crypt_priv);
869 ap->crypt = ap->crypt_priv = NULL; 867 ap->crypt = ap->crypt_priv = NULL;
diff --git a/drivers/net/wireless/hostap/hostap_cs.c b/drivers/net/wireless/hostap/hostap_cs.c
index 89e9d3a78c3..5441ad19511 100644
--- a/drivers/net/wireless/hostap/hostap_cs.c
+++ b/drivers/net/wireless/hostap/hostap_cs.c
@@ -656,9 +656,6 @@ static const struct pcmcia_device_id hostap_cs_ids[] = {
656 "Addtron", "AWP-100 Wireless PCMCIA", "Version 01.02", 656 "Addtron", "AWP-100 Wireless PCMCIA", "Version 01.02",
657 0xe6ec52ce, 0x08649af2, 0x4b74baa0), 657 0xe6ec52ce, 0x08649af2, 0x4b74baa0),
658 PCMCIA_DEVICE_PROD_ID123( 658 PCMCIA_DEVICE_PROD_ID123(
659 "Canon", "Wireless LAN CF Card K30225", "Version 01.00",
660 0x96ef6fe2, 0x263fcbab, 0xa57adb8c),
661 PCMCIA_DEVICE_PROD_ID123(
662 "D", "Link DWL-650 11Mbps WLAN Card", "Version 01.02", 659 "D", "Link DWL-650 11Mbps WLAN Card", "Version 01.02",
663 0x71b18589, 0xb6f1b0ab, 0x4b74baa0), 660 0x71b18589, 0xb6f1b0ab, 0x4b74baa0),
664 PCMCIA_DEVICE_PROD_ID123( 661 PCMCIA_DEVICE_PROD_ID123(
diff --git a/drivers/net/wireless/hostap/hostap_hw.c b/drivers/net/wireless/hostap/hostap_hw.c
index 8e7000fd441..a8bddd81b4d 100644
--- a/drivers/net/wireless/hostap/hostap_hw.c
+++ b/drivers/net/wireless/hostap/hostap_hw.c
@@ -347,9 +347,11 @@ static int hfa384x_cmd(struct net_device *dev, u16 cmd, u16 param0,
347 return -EINTR; 347 return -EINTR;
348 348
349 entry = kzalloc(sizeof(*entry), GFP_ATOMIC); 349 entry = kzalloc(sizeof(*entry), GFP_ATOMIC);
350 if (entry == NULL) 350 if (entry == NULL) {
351 printk(KERN_DEBUG "%s: hfa384x_cmd - kmalloc failed\n",
352 dev->name);
351 return -ENOMEM; 353 return -ENOMEM;
352 354 }
353 atomic_set(&entry->usecnt, 1); 355 atomic_set(&entry->usecnt, 1);
354 entry->type = CMD_SLEEP; 356 entry->type = CMD_SLEEP;
355 entry->cmd = cmd; 357 entry->cmd = cmd;
@@ -513,9 +515,11 @@ static int hfa384x_cmd_callback(struct net_device *dev, u16 cmd, u16 param0,
513 } 515 }
514 516
515 entry = kzalloc(sizeof(*entry), GFP_ATOMIC); 517 entry = kzalloc(sizeof(*entry), GFP_ATOMIC);
516 if (entry == NULL) 518 if (entry == NULL) {
519 printk(KERN_DEBUG "%s: hfa384x_cmd_callback - kmalloc "
520 "failed\n", dev->name);
517 return -ENOMEM; 521 return -ENOMEM;
518 522 }
519 atomic_set(&entry->usecnt, 1); 523 atomic_set(&entry->usecnt, 1);
520 entry->type = CMD_CALLBACK; 524 entry->type = CMD_CALLBACK;
521 entry->cmd = cmd; 525 entry->cmd = cmd;
@@ -1466,7 +1470,7 @@ static int prism2_hw_enable(struct net_device *dev, int initial)
1466 * before it starts acting as an AP, so reset port automatically 1470 * before it starts acting as an AP, so reset port automatically
1467 * here just in case */ 1471 * here just in case */
1468 if (initial && prism2_reset_port(dev)) { 1472 if (initial && prism2_reset_port(dev)) {
1469 printk("%s: MAC port 0 resetting failed\n", dev->name); 1473 printk("%s: MAC port 0 reseting failed\n", dev->name);
1470 return 1; 1474 return 1;
1471 } 1475 }
1472 1476
@@ -1557,7 +1561,7 @@ static void prism2_hw_reset(struct net_device *dev)
1557 static long last_reset = 0; 1561 static long last_reset = 0;
1558 1562
1559 /* do not reset card more than once per second to avoid ending up in a 1563 /* do not reset card more than once per second to avoid ending up in a
1560 * busy loop resetting the card */ 1564 * busy loop reseting the card */
1561 if (time_before_eq(jiffies, last_reset + HZ)) 1565 if (time_before_eq(jiffies, last_reset + HZ))
1562 return; 1566 return;
1563 last_reset = jiffies; 1567 last_reset = jiffies;
@@ -2974,9 +2978,11 @@ static int prism2_set_tim(struct net_device *dev, int aid, int set)
2974 local = iface->local; 2978 local = iface->local;
2975 2979
2976 new_entry = kzalloc(sizeof(*new_entry), GFP_ATOMIC); 2980 new_entry = kzalloc(sizeof(*new_entry), GFP_ATOMIC);
2977 if (new_entry == NULL) 2981 if (new_entry == NULL) {
2982 printk(KERN_DEBUG "%s: prism2_set_tim: kmalloc failed\n",
2983 local->dev->name);
2978 return -ENOMEM; 2984 return -ENOMEM;
2979 2985 }
2980 new_entry->aid = aid; 2986 new_entry->aid = aid;
2981 new_entry->set = set; 2987 new_entry->set = set;
2982 2988
@@ -3311,13 +3317,13 @@ static void prism2_free_local_data(struct net_device *dev)
3311 3317
3312 unregister_netdev(local->dev); 3318 unregister_netdev(local->dev);
3313 3319
3314 flush_work(&local->reset_queue); 3320 flush_work_sync(&local->reset_queue);
3315 flush_work(&local->set_multicast_list_queue); 3321 flush_work_sync(&local->set_multicast_list_queue);
3316 flush_work(&local->set_tim_queue); 3322 flush_work_sync(&local->set_tim_queue);
3317#ifndef PRISM2_NO_STATION_MODES 3323#ifndef PRISM2_NO_STATION_MODES
3318 flush_work(&local->info_queue); 3324 flush_work_sync(&local->info_queue);
3319#endif 3325#endif
3320 flush_work(&local->comms_qual_update); 3326 flush_work_sync(&local->comms_qual_update);
3321 3327
3322 lib80211_crypt_info_free(&local->crypt_info); 3328 lib80211_crypt_info_free(&local->crypt_info);
3323 3329
diff --git a/drivers/net/wireless/hostap/hostap_info.c b/drivers/net/wireless/hostap/hostap_info.c
index 970a48baaf8..d737091cf6a 100644
--- a/drivers/net/wireless/hostap/hostap_info.c
+++ b/drivers/net/wireless/hostap/hostap_info.c
@@ -3,8 +3,6 @@
3#include <linux/if_arp.h> 3#include <linux/if_arp.h>
4#include <linux/sched.h> 4#include <linux/sched.h>
5#include <linux/slab.h> 5#include <linux/slab.h>
6#include <linux/export.h>
7#include <linux/etherdevice.h>
8#include "hostap_wlan.h" 6#include "hostap_wlan.h"
9#include "hostap.h" 7#include "hostap.h"
10#include "hostap_ap.h" 8#include "hostap_ap.h"
@@ -464,7 +462,8 @@ static void handle_info_queue_scanresults(local_info_t *local)
464 prism2_host_roaming(local); 462 prism2_host_roaming(local);
465 463
466 if (local->host_roaming == 2 && local->iw_mode == IW_MODE_INFRA && 464 if (local->host_roaming == 2 && local->iw_mode == IW_MODE_INFRA &&
467 !is_zero_ether_addr(local->preferred_ap)) { 465 memcmp(local->preferred_ap, "\x00\x00\x00\x00\x00\x00",
466 ETH_ALEN) != 0) {
468 /* 467 /*
469 * Firmware seems to be getting into odd state in host_roaming 468 * Firmware seems to be getting into odd state in host_roaming
470 * mode 2 when hostscan is used without join command, so try 469 * mode 2 when hostscan is used without join command, so try
diff --git a/drivers/net/wireless/hostap/hostap_ioctl.c b/drivers/net/wireless/hostap/hostap_ioctl.c
index ac074731335..12de46407c7 100644
--- a/drivers/net/wireless/hostap/hostap_ioctl.c
+++ b/drivers/net/wireless/hostap/hostap_ioctl.c
@@ -5,8 +5,6 @@
5#include <linux/sched.h> 5#include <linux/sched.h>
6#include <linux/ethtool.h> 6#include <linux/ethtool.h>
7#include <linux/if_arp.h> 7#include <linux/if_arp.h>
8#include <linux/module.h>
9#include <linux/etherdevice.h>
10#include <net/lib80211.h> 8#include <net/lib80211.h>
11 9
12#include "hostap_wlan.h" 10#include "hostap_wlan.h"
@@ -3222,7 +3220,8 @@ static int prism2_ioctl_siwencodeext(struct net_device *dev,
3222 return -EINVAL; 3220 return -EINVAL;
3223 3221
3224 addr = ext->addr.sa_data; 3222 addr = ext->addr.sa_data;
3225 if (is_broadcast_ether_addr(addr)) { 3223 if (addr[0] == 0xff && addr[1] == 0xff && addr[2] == 0xff &&
3224 addr[3] == 0xff && addr[4] == 0xff && addr[5] == 0xff) {
3226 sta_ptr = NULL; 3225 sta_ptr = NULL;
3227 crypt = &local->crypt_info.crypt[i]; 3226 crypt = &local->crypt_info.crypt[i];
3228 } else { 3227 } else {
@@ -3394,7 +3393,8 @@ static int prism2_ioctl_giwencodeext(struct net_device *dev,
3394 i--; 3393 i--;
3395 3394
3396 addr = ext->addr.sa_data; 3395 addr = ext->addr.sa_data;
3397 if (is_broadcast_ether_addr(addr)) { 3396 if (addr[0] == 0xff && addr[1] == 0xff && addr[2] == 0xff &&
3397 addr[3] == 0xff && addr[4] == 0xff && addr[5] == 0xff) {
3398 sta_ptr = NULL; 3398 sta_ptr = NULL;
3399 crypt = &local->crypt_info.crypt[i]; 3399 crypt = &local->crypt_info.crypt[i];
3400 } else { 3400 } else {
@@ -3457,7 +3457,9 @@ static int prism2_ioctl_set_encryption(local_info_t *local,
3457 param->u.crypt.key_len) 3457 param->u.crypt.key_len)
3458 return -EINVAL; 3458 return -EINVAL;
3459 3459
3460 if (is_broadcast_ether_addr(param->sta_addr)) { 3460 if (param->sta_addr[0] == 0xff && param->sta_addr[1] == 0xff &&
3461 param->sta_addr[2] == 0xff && param->sta_addr[3] == 0xff &&
3462 param->sta_addr[4] == 0xff && param->sta_addr[5] == 0xff) {
3461 if (param->u.crypt.idx >= WEP_KEYS) 3463 if (param->u.crypt.idx >= WEP_KEYS)
3462 return -EINVAL; 3464 return -EINVAL;
3463 sta_ptr = NULL; 3465 sta_ptr = NULL;
@@ -3590,7 +3592,9 @@ static int prism2_ioctl_get_encryption(local_info_t *local,
3590 if (max_key_len < 0) 3592 if (max_key_len < 0)
3591 return -EINVAL; 3593 return -EINVAL;
3592 3594
3593 if (is_broadcast_ether_addr(param->sta_addr)) { 3595 if (param->sta_addr[0] == 0xff && param->sta_addr[1] == 0xff &&
3596 param->sta_addr[2] == 0xff && param->sta_addr[3] == 0xff &&
3597 param->sta_addr[4] == 0xff && param->sta_addr[5] == 0xff) {
3594 sta_ptr = NULL; 3598 sta_ptr = NULL;
3595 if (param->u.crypt.idx >= WEP_KEYS) 3599 if (param->u.crypt.idx >= WEP_KEYS)
3596 param->u.crypt.idx = local->crypt_info.tx_keyidx; 3600 param->u.crypt.idx = local->crypt_info.tx_keyidx;
@@ -3867,8 +3871,8 @@ static void prism2_get_drvinfo(struct net_device *dev,
3867 iface = netdev_priv(dev); 3871 iface = netdev_priv(dev);
3868 local = iface->local; 3872 local = iface->local;
3869 3873
3870 strlcpy(info->driver, "hostap", sizeof(info->driver)); 3874 strncpy(info->driver, "hostap", sizeof(info->driver) - 1);
3871 snprintf(info->fw_version, sizeof(info->fw_version), 3875 snprintf(info->fw_version, sizeof(info->fw_version) - 1,
3872 "%d.%d.%d", (local->sta_fw_ver >> 16) & 0xff, 3876 "%d.%d.%d", (local->sta_fw_ver >> 16) & 0xff,
3873 (local->sta_fw_ver >> 8) & 0xff, 3877 (local->sta_fw_ver >> 8) & 0xff,
3874 local->sta_fw_ver & 0xff); 3878 local->sta_fw_ver & 0xff);
diff --git a/drivers/net/wireless/hostap/hostap_main.c b/drivers/net/wireless/hostap/hostap_main.c
index 15f0fad39ad..89a116fba1d 100644
--- a/drivers/net/wireless/hostap/hostap_main.c
+++ b/drivers/net/wireless/hostap/hostap_main.c
@@ -244,7 +244,8 @@ u16 hostap_tx_callback_register(local_info_t *local,
244 unsigned long flags; 244 unsigned long flags;
245 struct hostap_tx_callback_info *entry; 245 struct hostap_tx_callback_info *entry;
246 246
247 entry = kmalloc(sizeof(*entry), GFP_KERNEL); 247 entry = kmalloc(sizeof(*entry),
248 GFP_ATOMIC);
248 if (entry == NULL) 249 if (entry == NULL)
249 return 0; 250 return 0;
250 251
@@ -815,7 +816,7 @@ static const struct net_device_ops hostap_netdev_ops = {
815 .ndo_stop = prism2_close, 816 .ndo_stop = prism2_close,
816 .ndo_do_ioctl = hostap_ioctl, 817 .ndo_do_ioctl = hostap_ioctl,
817 .ndo_set_mac_address = prism2_set_mac_address, 818 .ndo_set_mac_address = prism2_set_mac_address,
818 .ndo_set_rx_mode = hostap_set_multicast_list, 819 .ndo_set_multicast_list = hostap_set_multicast_list,
819 .ndo_change_mtu = prism2_change_mtu, 820 .ndo_change_mtu = prism2_change_mtu,
820 .ndo_tx_timeout = prism2_tx_timeout, 821 .ndo_tx_timeout = prism2_tx_timeout,
821 .ndo_validate_addr = eth_validate_addr, 822 .ndo_validate_addr = eth_validate_addr,
@@ -828,7 +829,7 @@ static const struct net_device_ops hostap_mgmt_netdev_ops = {
828 .ndo_stop = prism2_close, 829 .ndo_stop = prism2_close,
829 .ndo_do_ioctl = hostap_ioctl, 830 .ndo_do_ioctl = hostap_ioctl,
830 .ndo_set_mac_address = prism2_set_mac_address, 831 .ndo_set_mac_address = prism2_set_mac_address,
831 .ndo_set_rx_mode = hostap_set_multicast_list, 832 .ndo_set_multicast_list = hostap_set_multicast_list,
832 .ndo_change_mtu = prism2_change_mtu, 833 .ndo_change_mtu = prism2_change_mtu,
833 .ndo_tx_timeout = prism2_tx_timeout, 834 .ndo_tx_timeout = prism2_tx_timeout,
834 .ndo_validate_addr = eth_validate_addr, 835 .ndo_validate_addr = eth_validate_addr,
@@ -841,7 +842,7 @@ static const struct net_device_ops hostap_master_ops = {
841 .ndo_stop = prism2_close, 842 .ndo_stop = prism2_close,
842 .ndo_do_ioctl = hostap_ioctl, 843 .ndo_do_ioctl = hostap_ioctl,
843 .ndo_set_mac_address = prism2_set_mac_address, 844 .ndo_set_mac_address = prism2_set_mac_address,
844 .ndo_set_rx_mode = hostap_set_multicast_list, 845 .ndo_set_multicast_list = hostap_set_multicast_list,
845 .ndo_change_mtu = prism2_change_mtu, 846 .ndo_change_mtu = prism2_change_mtu,
846 .ndo_tx_timeout = prism2_tx_timeout, 847 .ndo_tx_timeout = prism2_tx_timeout,
847 .ndo_validate_addr = eth_validate_addr, 848 .ndo_validate_addr = eth_validate_addr,
@@ -1084,7 +1085,7 @@ int prism2_sta_deauth(local_info_t *local, u16 reason)
1084 __le16 val = cpu_to_le16(reason); 1085 __le16 val = cpu_to_le16(reason);
1085 1086
1086 if (local->iw_mode != IW_MODE_INFRA || 1087 if (local->iw_mode != IW_MODE_INFRA ||
1087 is_zero_ether_addr(local->bssid) || 1088 memcmp(local->bssid, "\x00\x00\x00\x00\x00\x00", ETH_ALEN) == 0 ||
1088 memcmp(local->bssid, "\x44\x44\x44\x44\x44\x44", ETH_ALEN) == 0) 1089 memcmp(local->bssid, "\x44\x44\x44\x44\x44\x44", ETH_ALEN) == 0)
1089 return 0; 1090 return 0;
1090 1091
diff --git a/drivers/net/wireless/hostap/hostap_pci.c b/drivers/net/wireless/hostap/hostap_pci.c
index 05ca3402dca..972a9c3af39 100644
--- a/drivers/net/wireless/hostap/hostap_pci.c
+++ b/drivers/net/wireless/hostap/hostap_pci.c
@@ -457,4 +457,18 @@ static struct pci_driver prism2_pci_driver = {
457#endif /* CONFIG_PM */ 457#endif /* CONFIG_PM */
458}; 458};
459 459
460module_pci_driver(prism2_pci_driver); 460
461static int __init init_prism2_pci(void)
462{
463 return pci_register_driver(&prism2_pci_driver);
464}
465
466
467static void __exit exit_prism2_pci(void)
468{
469 pci_unregister_driver(&prism2_pci_driver);
470}
471
472
473module_init(init_prism2_pci);
474module_exit(exit_prism2_pci);
diff --git a/drivers/net/wireless/hostap/hostap_plx.c b/drivers/net/wireless/hostap/hostap_plx.c
index c3d067ee4db..33e79037770 100644
--- a/drivers/net/wireless/hostap/hostap_plx.c
+++ b/drivers/net/wireless/hostap/hostap_plx.c
@@ -616,4 +616,18 @@ static struct pci_driver prism2_plx_driver = {
616 .remove = prism2_plx_remove, 616 .remove = prism2_plx_remove,
617}; 617};
618 618
619module_pci_driver(prism2_plx_driver); 619
620static int __init init_prism2_plx(void)
621{
622 return pci_register_driver(&prism2_plx_driver);
623}
624
625
626static void __exit exit_prism2_plx(void)
627{
628 pci_unregister_driver(&prism2_plx_driver);
629}
630
631
632module_init(init_prism2_plx);
633module_exit(exit_prism2_plx);
diff --git a/drivers/net/wireless/hostap/hostap_proc.c b/drivers/net/wireless/hostap/hostap_proc.c
index dc447c1b5ab..005ff25a405 100644
--- a/drivers/net/wireless/hostap/hostap_proc.c
+++ b/drivers/net/wireless/hostap/hostap_proc.c
@@ -2,7 +2,6 @@
2 2
3#include <linux/types.h> 3#include <linux/types.h>
4#include <linux/proc_fs.h> 4#include <linux/proc_fs.h>
5#include <linux/export.h>
6#include <net/lib80211.h> 5#include <net/lib80211.h>
7 6
8#include "hostap_wlan.h" 7#include "hostap_wlan.h"
@@ -58,7 +57,8 @@ static int prism2_stats_proc_read(char *page, char **start, off_t off,
58{ 57{
59 char *p = page; 58 char *p = page;
60 local_info_t *local = (local_info_t *) data; 59 local_info_t *local = (local_info_t *) data;
61 struct comm_tallies_sums *sums = &local->comm_tallies; 60 struct comm_tallies_sums *sums = (struct comm_tallies_sums *)
61 &local->comm_tallies;
62 62
63 if (off != 0) { 63 if (off != 0) {
64 *eof = 1; 64 *eof = 1;