diff options
Diffstat (limited to 'drivers/net/wireless/hostap/hostap_main.c')
| -rw-r--r-- | drivers/net/wireless/hostap/hostap_main.c | 20 |
1 files changed, 1 insertions, 19 deletions
diff --git a/drivers/net/wireless/hostap/hostap_main.c b/drivers/net/wireless/hostap/hostap_main.c index a38e85f334df..756ab56c1f40 100644 --- a/drivers/net/wireless/hostap/hostap_main.c +++ b/drivers/net/wireless/hostap/hostap_main.c | |||
| @@ -597,25 +597,7 @@ void hostap_dump_tx_header(const char *name, const struct hfa384x_tx_frame *tx) | |||
| 597 | static int hostap_80211_header_parse(const struct sk_buff *skb, | 597 | static int hostap_80211_header_parse(const struct sk_buff *skb, |
| 598 | unsigned char *haddr) | 598 | unsigned char *haddr) |
| 599 | { | 599 | { |
| 600 | struct hostap_interface *iface = netdev_priv(skb->dev); | 600 | memcpy(haddr, skb_mac_header(skb) + 10, ETH_ALEN); /* addr2 */ |
| 601 | local_info_t *local = iface->local; | ||
| 602 | |||
| 603 | if (local->monitor_type == PRISM2_MONITOR_PRISM || | ||
| 604 | local->monitor_type == PRISM2_MONITOR_CAPHDR) { | ||
| 605 | const unsigned char *mac = skb_mac_header(skb); | ||
| 606 | |||
| 607 | if (*(u32 *)mac == LWNG_CAP_DID_BASE) { | ||
| 608 | memcpy(haddr, | ||
| 609 | mac + sizeof(struct linux_wlan_ng_prism_hdr) + 10, | ||
| 610 | ETH_ALEN); /* addr2 */ | ||
| 611 | } else { /* (*(u32 *)mac == htonl(LWNG_CAPHDR_VERSION)) */ | ||
| 612 | memcpy(haddr, | ||
| 613 | mac + sizeof(struct linux_wlan_ng_cap_hdr) + 10, | ||
| 614 | ETH_ALEN); /* addr2 */ | ||
| 615 | } | ||
| 616 | } else | ||
| 617 | memcpy(haddr, skb_mac_header(skb) + 10, ETH_ALEN); /* addr2 */ | ||
| 618 | |||
| 619 | return ETH_ALEN; | 601 | return ETH_ALEN; |
| 620 | } | 602 | } |
| 621 | 603 | ||
