diff options
Diffstat (limited to 'drivers/net/wireless/hostap/hostap_ap.c')
-rw-r--r-- | drivers/net/wireless/hostap/hostap_ap.c | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/drivers/net/wireless/hostap/hostap_ap.c b/drivers/net/wireless/hostap/hostap_ap.c index d6033a8e5dea..596525528f50 100644 --- a/drivers/net/wireless/hostap/hostap_ap.c +++ b/drivers/net/wireless/hostap/hostap_ap.c | |||
@@ -24,6 +24,7 @@ | |||
24 | #include <linux/slab.h> | 24 | #include <linux/slab.h> |
25 | #include <linux/export.h> | 25 | #include <linux/export.h> |
26 | #include <linux/moduleparam.h> | 26 | #include <linux/moduleparam.h> |
27 | #include <linux/etherdevice.h> | ||
27 | 28 | ||
28 | #include "hostap_wlan.h" | 29 | #include "hostap_wlan.h" |
29 | #include "hostap.h" | 30 | #include "hostap.h" |
@@ -106,13 +107,12 @@ static void ap_sta_hash_del(struct ap_data *ap, struct sta_info *sta) | |||
106 | 107 | ||
107 | s = ap->sta_hash[STA_HASH(sta->addr)]; | 108 | s = ap->sta_hash[STA_HASH(sta->addr)]; |
108 | if (s == NULL) return; | 109 | if (s == NULL) return; |
109 | if (memcmp(s->addr, sta->addr, ETH_ALEN) == 0) { | 110 | if (ether_addr_equal(s->addr, sta->addr)) { |
110 | ap->sta_hash[STA_HASH(sta->addr)] = s->hnext; | 111 | ap->sta_hash[STA_HASH(sta->addr)] = s->hnext; |
111 | return; | 112 | return; |
112 | } | 113 | } |
113 | 114 | ||
114 | while (s->hnext != NULL && memcmp(s->hnext->addr, sta->addr, ETH_ALEN) | 115 | while (s->hnext != NULL && !ether_addr_equal(s->hnext->addr, sta->addr)) |
115 | != 0) | ||
116 | s = s->hnext; | 116 | s = s->hnext; |
117 | if (s->hnext != NULL) | 117 | if (s->hnext != NULL) |
118 | s->hnext = s->hnext->hnext; | 118 | s->hnext = s->hnext->hnext; |
@@ -147,7 +147,7 @@ static void ap_free_sta(struct ap_data *ap, struct sta_info *sta) | |||
147 | 147 | ||
148 | if (!sta->ap && sta->u.sta.challenge) | 148 | if (!sta->ap && sta->u.sta.challenge) |
149 | kfree(sta->u.sta.challenge); | 149 | kfree(sta->u.sta.challenge); |
150 | del_timer(&sta->timer); | 150 | del_timer_sync(&sta->timer); |
151 | #endif /* PRISM2_NO_KERNEL_IEEE80211_MGMT */ | 151 | #endif /* PRISM2_NO_KERNEL_IEEE80211_MGMT */ |
152 | 152 | ||
153 | kfree(sta); | 153 | kfree(sta); |
@@ -435,7 +435,7 @@ int ap_control_del_mac(struct mac_restrictions *mac_restrictions, u8 *mac) | |||
435 | ptr != &mac_restrictions->mac_list; ptr = ptr->next) { | 435 | ptr != &mac_restrictions->mac_list; ptr = ptr->next) { |
436 | entry = list_entry(ptr, struct mac_entry, list); | 436 | entry = list_entry(ptr, struct mac_entry, list); |
437 | 437 | ||
438 | if (memcmp(entry->addr, mac, ETH_ALEN) == 0) { | 438 | if (ether_addr_equal(entry->addr, mac)) { |
439 | list_del(ptr); | 439 | list_del(ptr); |
440 | kfree(entry); | 440 | kfree(entry); |
441 | mac_restrictions->entries--; | 441 | mac_restrictions->entries--; |
@@ -459,7 +459,7 @@ static int ap_control_mac_deny(struct mac_restrictions *mac_restrictions, | |||
459 | 459 | ||
460 | spin_lock_bh(&mac_restrictions->lock); | 460 | spin_lock_bh(&mac_restrictions->lock); |
461 | list_for_each_entry(entry, &mac_restrictions->mac_list, list) { | 461 | list_for_each_entry(entry, &mac_restrictions->mac_list, list) { |
462 | if (memcmp(entry->addr, mac, ETH_ALEN) == 0) { | 462 | if (ether_addr_equal(entry->addr, mac)) { |
463 | found = 1; | 463 | found = 1; |
464 | break; | 464 | break; |
465 | } | 465 | } |
@@ -957,7 +957,7 @@ static struct sta_info* ap_get_sta(struct ap_data *ap, u8 *sta) | |||
957 | struct sta_info *s; | 957 | struct sta_info *s; |
958 | 958 | ||
959 | s = ap->sta_hash[STA_HASH(sta)]; | 959 | s = ap->sta_hash[STA_HASH(sta)]; |
960 | while (s != NULL && memcmp(s->addr, sta, ETH_ALEN) != 0) | 960 | while (s != NULL && !ether_addr_equal(s->addr, sta)) |
961 | s = s->hnext; | 961 | s = s->hnext; |
962 | return s; | 962 | return s; |
963 | } | 963 | } |
@@ -1391,7 +1391,7 @@ static void handle_authen(local_info_t *local, struct sk_buff *skb, | |||
1391 | status_code = __le16_to_cpu(*pos); | 1391 | status_code = __le16_to_cpu(*pos); |
1392 | pos++; | 1392 | pos++; |
1393 | 1393 | ||
1394 | if (memcmp(dev->dev_addr, hdr->addr2, ETH_ALEN) == 0 || | 1394 | if (ether_addr_equal(dev->dev_addr, hdr->addr2) || |
1395 | ap_control_mac_deny(&ap->mac_restrictions, hdr->addr2)) { | 1395 | ap_control_mac_deny(&ap->mac_restrictions, hdr->addr2)) { |
1396 | txt = "authentication denied"; | 1396 | txt = "authentication denied"; |
1397 | resp = WLAN_STATUS_UNSPECIFIED_FAILURE; | 1397 | resp = WLAN_STATUS_UNSPECIFIED_FAILURE; |
@@ -1935,7 +1935,7 @@ static void handle_pspoll(local_info_t *local, | |||
1935 | PDEBUG(DEBUG_PS2, "handle_pspoll: BSSID=%pM, TA=%pM PWRMGT=%d\n", | 1935 | PDEBUG(DEBUG_PS2, "handle_pspoll: BSSID=%pM, TA=%pM PWRMGT=%d\n", |
1936 | hdr->addr1, hdr->addr2, !!ieee80211_has_pm(hdr->frame_control)); | 1936 | hdr->addr1, hdr->addr2, !!ieee80211_has_pm(hdr->frame_control)); |
1937 | 1937 | ||
1938 | if (memcmp(hdr->addr1, dev->dev_addr, ETH_ALEN)) { | 1938 | if (!ether_addr_equal(hdr->addr1, dev->dev_addr)) { |
1939 | PDEBUG(DEBUG_AP, | 1939 | PDEBUG(DEBUG_AP, |
1940 | "handle_pspoll - addr1(BSSID)=%pM not own MAC\n", | 1940 | "handle_pspoll - addr1(BSSID)=%pM not own MAC\n", |
1941 | hdr->addr1); | 1941 | hdr->addr1); |
@@ -2230,7 +2230,7 @@ static void handle_ap_item(local_info_t *local, struct sk_buff *skb, | |||
2230 | goto done; | 2230 | goto done; |
2231 | } | 2231 | } |
2232 | 2232 | ||
2233 | if (memcmp(hdr->addr1, dev->dev_addr, ETH_ALEN)) { | 2233 | if (!ether_addr_equal(hdr->addr1, dev->dev_addr)) { |
2234 | PDEBUG(DEBUG_AP, "handle_ap_item - addr1(BSSID)=%pM" | 2234 | PDEBUG(DEBUG_AP, "handle_ap_item - addr1(BSSID)=%pM" |
2235 | " not own MAC\n", hdr->addr1); | 2235 | " not own MAC\n", hdr->addr1); |
2236 | goto done; | 2236 | goto done; |
@@ -2267,13 +2267,13 @@ static void handle_ap_item(local_info_t *local, struct sk_buff *skb, | |||
2267 | goto done; | 2267 | goto done; |
2268 | } | 2268 | } |
2269 | 2269 | ||
2270 | if (memcmp(hdr->addr1, dev->dev_addr, ETH_ALEN)) { | 2270 | if (!ether_addr_equal(hdr->addr1, dev->dev_addr)) { |
2271 | PDEBUG(DEBUG_AP, "handle_ap_item - addr1(DA)=%pM" | 2271 | PDEBUG(DEBUG_AP, "handle_ap_item - addr1(DA)=%pM" |
2272 | " not own MAC\n", hdr->addr1); | 2272 | " not own MAC\n", hdr->addr1); |
2273 | goto done; | 2273 | goto done; |
2274 | } | 2274 | } |
2275 | 2275 | ||
2276 | if (memcmp(hdr->addr3, dev->dev_addr, ETH_ALEN)) { | 2276 | if (!ether_addr_equal(hdr->addr3, dev->dev_addr)) { |
2277 | PDEBUG(DEBUG_AP, "handle_ap_item - addr3(BSSID)=%pM" | 2277 | PDEBUG(DEBUG_AP, "handle_ap_item - addr3(BSSID)=%pM" |
2278 | " not own MAC\n", hdr->addr3); | 2278 | " not own MAC\n", hdr->addr3); |
2279 | goto done; | 2279 | goto done; |
@@ -3035,7 +3035,7 @@ ap_rx_ret hostap_handle_sta_rx(local_info_t *local, struct net_device *dev, | |||
3035 | if (!wds) { | 3035 | if (!wds) { |
3036 | /* FromDS frame - not for us; probably | 3036 | /* FromDS frame - not for us; probably |
3037 | * broadcast/multicast in another BSS - drop */ | 3037 | * broadcast/multicast in another BSS - drop */ |
3038 | if (memcmp(hdr->addr1, dev->dev_addr, ETH_ALEN) == 0) { | 3038 | if (ether_addr_equal(hdr->addr1, dev->dev_addr)) { |
3039 | printk(KERN_DEBUG "Odd.. FromDS packet " | 3039 | printk(KERN_DEBUG "Odd.. FromDS packet " |
3040 | "received with own BSSID\n"); | 3040 | "received with own BSSID\n"); |
3041 | hostap_dump_rx_80211(dev->name, skb, rx_stats); | 3041 | hostap_dump_rx_80211(dev->name, skb, rx_stats); |
@@ -3044,7 +3044,7 @@ ap_rx_ret hostap_handle_sta_rx(local_info_t *local, struct net_device *dev, | |||
3044 | goto out; | 3044 | goto out; |
3045 | } | 3045 | } |
3046 | } else if (stype == IEEE80211_STYPE_NULLFUNC && sta == NULL && | 3046 | } else if (stype == IEEE80211_STYPE_NULLFUNC && sta == NULL && |
3047 | memcmp(hdr->addr1, dev->dev_addr, ETH_ALEN) == 0) { | 3047 | ether_addr_equal(hdr->addr1, dev->dev_addr)) { |
3048 | 3048 | ||
3049 | if (local->hostapd) { | 3049 | if (local->hostapd) { |
3050 | prism2_rx_80211(local->apdev, skb, rx_stats, | 3050 | prism2_rx_80211(local->apdev, skb, rx_stats, |
@@ -3073,7 +3073,7 @@ ap_rx_ret hostap_handle_sta_rx(local_info_t *local, struct net_device *dev, | |||
3073 | /* If BSSID (Addr3) is foreign, this frame is a normal | 3073 | /* If BSSID (Addr3) is foreign, this frame is a normal |
3074 | * broadcast frame from an IBSS network. Drop it silently. | 3074 | * broadcast frame from an IBSS network. Drop it silently. |
3075 | * If BSSID is own, report the dropping of this frame. */ | 3075 | * If BSSID is own, report the dropping of this frame. */ |
3076 | if (memcmp(hdr->addr3, dev->dev_addr, ETH_ALEN) == 0) { | 3076 | if (ether_addr_equal(hdr->addr3, dev->dev_addr)) { |
3077 | printk(KERN_DEBUG "%s: dropped received packet from %pM" | 3077 | printk(KERN_DEBUG "%s: dropped received packet from %pM" |
3078 | " with no ToDS flag " | 3078 | " with no ToDS flag " |
3079 | "(type=0x%02x, subtype=0x%02x)\n", dev->name, | 3079 | "(type=0x%02x, subtype=0x%02x)\n", dev->name, |