aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/hostap/hostap_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/hostap/hostap_main.c')
-rw-r--r--drivers/net/wireless/hostap/hostap_main.c20
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)
597static int hostap_80211_header_parse(const struct sk_buff *skb, 597static 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