Commit b57ceb19 authored by Mateusz Kulikowski's avatar Mateusz Kulikowski Committed by Greg Kroah-Hartman

staging: rtl8192e: Fix PREFER_ETHER_ADDR_COPY warnings

Replace memcpy() with ether_addr_copy() where possible to make
checkpatch.pl happy.
Change was target tested (download 1Mb file over WPA2 network)
with BUG trap for unaligned addresses in ether_addr_copy()
Signed-off-by: default avatarMateusz Kulikowski <mateusz.kulikowski@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 06c11107
...@@ -382,7 +382,7 @@ static void rtl8192_read_eeprom_info(struct net_device *dev) ...@@ -382,7 +382,7 @@ static void rtl8192_read_eeprom_info(struct net_device *dev)
*(u16 *)(&dev->dev_addr[i]) = usValue; *(u16 *)(&dev->dev_addr[i]) = usValue;
} }
} else { } else {
memcpy(dev->dev_addr, bMac_Tmp_Addr, 6); ether_addr_copy(dev->dev_addr, bMac_Tmp_Addr);
} }
RT_TRACE(COMP_INIT, "Permanent Address = %pM\n", RT_TRACE(COMP_INIT, "Permanent Address = %pM\n",
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
******************************************************************************/ ******************************************************************************/
#include <asm/byteorder.h> #include <asm/byteorder.h>
#include <asm/unaligned.h> #include <asm/unaligned.h>
#include <linux/etherdevice.h>
#include "rtllib.h" #include "rtllib.h"
#include "rtl819x_BA.h" #include "rtl819x_BA.h"
...@@ -103,10 +104,10 @@ static struct sk_buff *rtllib_ADDBA(struct rtllib_device *ieee, u8 *Dst, ...@@ -103,10 +104,10 @@ static struct sk_buff *rtllib_ADDBA(struct rtllib_device *ieee, u8 *Dst,
BAReq = (struct rtllib_hdr_3addr *)skb_put(skb, BAReq = (struct rtllib_hdr_3addr *)skb_put(skb,
sizeof(struct rtllib_hdr_3addr)); sizeof(struct rtllib_hdr_3addr));
memcpy(BAReq->addr1, Dst, ETH_ALEN); ether_addr_copy(BAReq->addr1, Dst);
memcpy(BAReq->addr2, ieee->dev->dev_addr, ETH_ALEN); ether_addr_copy(BAReq->addr2, ieee->dev->dev_addr);
memcpy(BAReq->addr3, ieee->current_network.bssid, ETH_ALEN); ether_addr_copy(BAReq->addr3, ieee->current_network.bssid);
BAReq->frame_ctl = cpu_to_le16(RTLLIB_STYPE_MANAGE_ACT); BAReq->frame_ctl = cpu_to_le16(RTLLIB_STYPE_MANAGE_ACT);
tag = (u8 *)skb_put(skb, 9); tag = (u8 *)skb_put(skb, 9);
...@@ -167,9 +168,9 @@ static struct sk_buff *rtllib_DELBA(struct rtllib_device *ieee, u8 *dst, ...@@ -167,9 +168,9 @@ static struct sk_buff *rtllib_DELBA(struct rtllib_device *ieee, u8 *dst,
Delba = (struct rtllib_hdr_3addr *) skb_put(skb, Delba = (struct rtllib_hdr_3addr *) skb_put(skb,
sizeof(struct rtllib_hdr_3addr)); sizeof(struct rtllib_hdr_3addr));
memcpy(Delba->addr1, dst, ETH_ALEN); ether_addr_copy(Delba->addr1, dst);
memcpy(Delba->addr2, ieee->dev->dev_addr, ETH_ALEN); ether_addr_copy(Delba->addr2, ieee->dev->dev_addr);
memcpy(Delba->addr3, ieee->current_network.bssid, ETH_ALEN); ether_addr_copy(Delba->addr3, ieee->current_network.bssid);
Delba->frame_ctl = cpu_to_le16(RTLLIB_STYPE_MANAGE_ACT); Delba->frame_ctl = cpu_to_le16(RTLLIB_STYPE_MANAGE_ACT);
tag = (u8 *)skb_put(skb, 6); tag = (u8 *)skb_put(skb, 6);
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
#include <linux/crypto.h> #include <linux/crypto.h>
#include <linux/scatterlist.h> #include <linux/scatterlist.h>
#include <linux/crc32.h> #include <linux/crc32.h>
#include <linux/etherdevice.h>
#include "rtllib.h" #include "rtllib.h"
...@@ -533,20 +534,20 @@ static void michael_mic_hdr(struct sk_buff *skb, u8 *hdr) ...@@ -533,20 +534,20 @@ static void michael_mic_hdr(struct sk_buff *skb, u8 *hdr)
switch (le16_to_cpu(hdr11->frame_ctl) & switch (le16_to_cpu(hdr11->frame_ctl) &
(RTLLIB_FCTL_FROMDS | RTLLIB_FCTL_TODS)) { (RTLLIB_FCTL_FROMDS | RTLLIB_FCTL_TODS)) {
case RTLLIB_FCTL_TODS: case RTLLIB_FCTL_TODS:
memcpy(hdr, hdr11->addr3, ETH_ALEN); /* DA */ ether_addr_copy(hdr, hdr11->addr3); /* DA */
memcpy(hdr + ETH_ALEN, hdr11->addr2, ETH_ALEN); /* SA */ ether_addr_copy(hdr + ETH_ALEN, hdr11->addr2); /* SA */
break; break;
case RTLLIB_FCTL_FROMDS: case RTLLIB_FCTL_FROMDS:
memcpy(hdr, hdr11->addr1, ETH_ALEN); /* DA */ ether_addr_copy(hdr, hdr11->addr1); /* DA */
memcpy(hdr + ETH_ALEN, hdr11->addr3, ETH_ALEN); /* SA */ ether_addr_copy(hdr + ETH_ALEN, hdr11->addr3); /* SA */
break; break;
case RTLLIB_FCTL_FROMDS | RTLLIB_FCTL_TODS: case RTLLIB_FCTL_FROMDS | RTLLIB_FCTL_TODS:
memcpy(hdr, hdr11->addr3, ETH_ALEN); /* DA */ ether_addr_copy(hdr, hdr11->addr3); /* DA */
memcpy(hdr + ETH_ALEN, hdr11->addr4, ETH_ALEN); /* SA */ ether_addr_copy(hdr + ETH_ALEN, hdr11->addr4); /* SA */
break; break;
case 0: case 0:
memcpy(hdr, hdr11->addr1, ETH_ALEN); /* DA */ ether_addr_copy(hdr, hdr11->addr1); /* DA */
memcpy(hdr + ETH_ALEN, hdr11->addr2, ETH_ALEN); /* SA */ ether_addr_copy(hdr + ETH_ALEN, hdr11->addr2); /* SA */
break; break;
} }
...@@ -599,7 +600,7 @@ static void rtllib_michael_mic_failure(struct net_device *dev, ...@@ -599,7 +600,7 @@ static void rtllib_michael_mic_failure(struct net_device *dev,
else else
ev.flags |= IW_MICFAILURE_PAIRWISE; ev.flags |= IW_MICFAILURE_PAIRWISE;
ev.src_addr.sa_family = ARPHRD_ETHER; ev.src_addr.sa_family = ARPHRD_ETHER;
memcpy(ev.src_addr.sa_data, hdr->addr2, ETH_ALEN); ether_addr_copy(ev.src_addr.sa_data, hdr->addr2);
memset(&wrqu, 0, sizeof(wrqu)); memset(&wrqu, 0, sizeof(wrqu));
wrqu.data.length = sizeof(ev); wrqu.data.length = sizeof(ev);
wireless_send_event(dev, IWEVMICHAELMICFAILURE, &wrqu, (char *) &ev); wireless_send_event(dev, IWEVMICHAELMICFAILURE, &wrqu, (char *) &ev);
......
...@@ -139,8 +139,8 @@ rtllib_frag_cache_get(struct rtllib_device *ieee, ...@@ -139,8 +139,8 @@ rtllib_frag_cache_get(struct rtllib_device *ieee,
entry->seq = seq; entry->seq = seq;
entry->last_frag = frag; entry->last_frag = frag;
entry->skb = skb; entry->skb = skb;
memcpy(entry->src_addr, hdr->addr2, ETH_ALEN); ether_addr_copy(entry->src_addr, hdr->addr2);
memcpy(entry->dst_addr, hdr->addr1, ETH_ALEN); ether_addr_copy(entry->dst_addr, hdr->addr1);
} else { } else {
/* received a fragment of a frame for which the head fragment /* received a fragment of a frame for which the head fragment
* should have already been received * should have already been received
...@@ -400,7 +400,7 @@ static int is_duplicate_packet(struct rtllib_device *ieee, ...@@ -400,7 +400,7 @@ static int is_duplicate_packet(struct rtllib_device *ieee,
if (!entry) if (!entry)
return 0; return 0;
memcpy(entry->mac, mac, ETH_ALEN); ether_addr_copy(entry->mac, mac);
entry->seq_num[tid] = seq; entry->seq_num[tid] = seq;
entry->frag_num[tid] = frag; entry->frag_num[tid] = frag;
entry->packet_time[tid] = jiffies; entry->packet_time[tid] = jiffies;
...@@ -927,24 +927,24 @@ static void rtllib_rx_extract_addr(struct rtllib_device *ieee, ...@@ -927,24 +927,24 @@ static void rtllib_rx_extract_addr(struct rtllib_device *ieee,
switch (fc & (RTLLIB_FCTL_FROMDS | RTLLIB_FCTL_TODS)) { switch (fc & (RTLLIB_FCTL_FROMDS | RTLLIB_FCTL_TODS)) {
case RTLLIB_FCTL_FROMDS: case RTLLIB_FCTL_FROMDS:
memcpy(dst, hdr->addr1, ETH_ALEN); ether_addr_copy(dst, hdr->addr1);
memcpy(src, hdr->addr3, ETH_ALEN); ether_addr_copy(src, hdr->addr3);
memcpy(bssid, hdr->addr2, ETH_ALEN); ether_addr_copy(bssid, hdr->addr2);
break; break;
case RTLLIB_FCTL_TODS: case RTLLIB_FCTL_TODS:
memcpy(dst, hdr->addr3, ETH_ALEN); ether_addr_copy(dst, hdr->addr3);
memcpy(src, hdr->addr2, ETH_ALEN); ether_addr_copy(src, hdr->addr2);
memcpy(bssid, hdr->addr1, ETH_ALEN); ether_addr_copy(bssid, hdr->addr1);
break; break;
case RTLLIB_FCTL_FROMDS | RTLLIB_FCTL_TODS: case RTLLIB_FCTL_FROMDS | RTLLIB_FCTL_TODS:
memcpy(dst, hdr->addr3, ETH_ALEN); ether_addr_copy(dst, hdr->addr3);
memcpy(src, hdr->addr4, ETH_ALEN); ether_addr_copy(src, hdr->addr4);
memcpy(bssid, ieee->current_network.bssid, ETH_ALEN); ether_addr_copy(bssid, ieee->current_network.bssid);
break; break;
case 0: case 0:
memcpy(dst, hdr->addr1, ETH_ALEN); ether_addr_copy(dst, hdr->addr1);
memcpy(src, hdr->addr2, ETH_ALEN); ether_addr_copy(src, hdr->addr2);
memcpy(bssid, hdr->addr3, ETH_ALEN); ether_addr_copy(bssid, hdr->addr3);
break; break;
} }
} }
...@@ -1218,15 +1218,19 @@ static void rtllib_rx_indicate_pkt_legacy(struct rtllib_device *ieee, ...@@ -1218,15 +1218,19 @@ static void rtllib_rx_indicate_pkt_legacy(struct rtllib_device *ieee,
* replace EtherType * replace EtherType
*/ */
skb_pull(sub_skb, SNAP_SIZE); skb_pull(sub_skb, SNAP_SIZE);
memcpy(skb_push(sub_skb, ETH_ALEN), src, ETH_ALEN); ether_addr_copy(skb_push(sub_skb, ETH_ALEN),
memcpy(skb_push(sub_skb, ETH_ALEN), dst, ETH_ALEN); src);
ether_addr_copy(skb_push(sub_skb, ETH_ALEN),
dst);
} else { } else {
u16 len; u16 len;
/* Leave Ethernet header part of hdr and full payload */ /* Leave Ethernet header part of hdr and full payload */
len = sub_skb->len; len = sub_skb->len;
memcpy(skb_push(sub_skb, 2), &len, 2); memcpy(skb_push(sub_skb, 2), &len, 2);
memcpy(skb_push(sub_skb, ETH_ALEN), src, ETH_ALEN); ether_addr_copy(skb_push(sub_skb, ETH_ALEN),
memcpy(skb_push(sub_skb, ETH_ALEN), dst, ETH_ALEN); src);
ether_addr_copy(skb_push(sub_skb, ETH_ALEN),
dst);
} }
ieee->stats.rx_packets++; ieee->stats.rx_packets++;
...@@ -2050,7 +2054,7 @@ int rtllib_parse_info_param(struct rtllib_device *ieee, ...@@ -2050,7 +2054,7 @@ int rtllib_parse_info_param(struct rtllib_device *ieee,
if (network->MBssidMask != 0) { if (network->MBssidMask != 0) {
network->bMBssidValid = true; network->bMBssidValid = true;
network->MBssidMask = 0xff << (network->MBssidMask); network->MBssidMask = 0xff << (network->MBssidMask);
memcpy(network->MBssid, network->bssid, ETH_ALEN); ether_addr_copy(network->MBssid, network->bssid);
network->MBssid[5] &= network->MBssidMask; network->MBssid[5] &= network->MBssidMask;
} else { } else {
network->bMBssidValid = false; network->bMBssidValid = false;
...@@ -2210,7 +2214,7 @@ static inline int rtllib_network_init( ...@@ -2210,7 +2214,7 @@ static inline int rtllib_network_init(
memset(&network->qos_data, 0, sizeof(struct rtllib_qos_data)); memset(&network->qos_data, 0, sizeof(struct rtllib_qos_data));
/* Pull out fixed field data */ /* Pull out fixed field data */
memcpy(network->bssid, beacon->header.addr3, ETH_ALEN); ether_addr_copy(network->bssid, beacon->header.addr3);
network->capability = le16_to_cpu(beacon->capability); network->capability = le16_to_cpu(beacon->capability);
network->last_scanned = jiffies; network->last_scanned = jiffies;
network->time_stamp[0] = beacon->time_stamp[0]; network->time_stamp[0] = beacon->time_stamp[0];
......
...@@ -372,7 +372,7 @@ static inline struct sk_buff *rtllib_probe_req(struct rtllib_device *ieee) ...@@ -372,7 +372,7 @@ static inline struct sk_buff *rtllib_probe_req(struct rtllib_device *ieee)
req->header.duration_id = 0; req->header.duration_id = 0;
memset(req->header.addr1, 0xff, ETH_ALEN); memset(req->header.addr1, 0xff, ETH_ALEN);
memcpy(req->header.addr2, ieee->dev->dev_addr, ETH_ALEN); ether_addr_copy(req->header.addr2, ieee->dev->dev_addr);
memset(req->header.addr3, 0xff, ETH_ALEN); memset(req->header.addr3, 0xff, ETH_ALEN);
tag = (u8 *) skb_put(skb, len + 2 + rate_len); tag = (u8 *) skb_put(skb, len + 2 + rate_len);
...@@ -815,9 +815,9 @@ inline struct sk_buff *rtllib_authentication_req(struct rtllib_network *beacon, ...@@ -815,9 +815,9 @@ inline struct sk_buff *rtllib_authentication_req(struct rtllib_network *beacon,
auth->header.frame_ctl |= cpu_to_le16(RTLLIB_FCTL_WEP); auth->header.frame_ctl |= cpu_to_le16(RTLLIB_FCTL_WEP);
auth->header.duration_id = cpu_to_le16(0x013a); auth->header.duration_id = cpu_to_le16(0x013a);
memcpy(auth->header.addr1, beacon->bssid, ETH_ALEN); ether_addr_copy(auth->header.addr1, beacon->bssid);
memcpy(auth->header.addr2, ieee->dev->dev_addr, ETH_ALEN); ether_addr_copy(auth->header.addr2, ieee->dev->dev_addr);
memcpy(auth->header.addr3, beacon->bssid, ETH_ALEN); ether_addr_copy(auth->header.addr3, beacon->bssid);
if (ieee->auth_mode == 0) if (ieee->auth_mode == 0)
auth->algorithm = WLAN_AUTH_OPEN; auth->algorithm = WLAN_AUTH_OPEN;
else if (ieee->auth_mode == 1) else if (ieee->auth_mode == 1)
...@@ -909,9 +909,9 @@ static struct sk_buff *rtllib_probe_resp(struct rtllib_device *ieee, ...@@ -909,9 +909,9 @@ static struct sk_buff *rtllib_probe_resp(struct rtllib_device *ieee,
beacon_buf = (struct rtllib_probe_response *) skb_put(skb, beacon_buf = (struct rtllib_probe_response *) skb_put(skb,
(beacon_size - ieee->tx_headroom)); (beacon_size - ieee->tx_headroom));
memcpy(beacon_buf->header.addr1, dest, ETH_ALEN); ether_addr_copy(beacon_buf->header.addr1, dest);
memcpy(beacon_buf->header.addr2, ieee->dev->dev_addr, ETH_ALEN); ether_addr_copy(beacon_buf->header.addr2, ieee->dev->dev_addr);
memcpy(beacon_buf->header.addr3, ieee->current_network.bssid, ETH_ALEN); ether_addr_copy(beacon_buf->header.addr3, ieee->current_network.bssid);
beacon_buf->header.duration_id = 0; beacon_buf->header.duration_id = 0;
beacon_buf->beacon_interval = beacon_buf->beacon_interval =
...@@ -1006,9 +1006,9 @@ static struct sk_buff *rtllib_assoc_resp(struct rtllib_device *ieee, u8 *dest) ...@@ -1006,9 +1006,9 @@ static struct sk_buff *rtllib_assoc_resp(struct rtllib_device *ieee, u8 *dest)
skb_put(skb, sizeof(struct rtllib_assoc_response_frame)); skb_put(skb, sizeof(struct rtllib_assoc_response_frame));
assoc->header.frame_ctl = cpu_to_le16(RTLLIB_STYPE_ASSOC_RESP); assoc->header.frame_ctl = cpu_to_le16(RTLLIB_STYPE_ASSOC_RESP);
memcpy(assoc->header.addr1, dest, ETH_ALEN); ether_addr_copy(assoc->header.addr1, dest);
memcpy(assoc->header.addr3, ieee->dev->dev_addr, ETH_ALEN); ether_addr_copy(assoc->header.addr3, ieee->dev->dev_addr);
memcpy(assoc->header.addr2, ieee->dev->dev_addr, ETH_ALEN); ether_addr_copy(assoc->header.addr2, ieee->dev->dev_addr);
assoc->capability = cpu_to_le16(ieee->iw_mode == IW_MODE_MASTER ? assoc->capability = cpu_to_le16(ieee->iw_mode == IW_MODE_MASTER ?
WLAN_CAPABILITY_ESS : WLAN_CAPABILITY_IBSS); WLAN_CAPABILITY_ESS : WLAN_CAPABILITY_IBSS);
...@@ -1063,9 +1063,9 @@ static struct sk_buff *rtllib_auth_resp(struct rtllib_device *ieee, int status, ...@@ -1063,9 +1063,9 @@ static struct sk_buff *rtllib_auth_resp(struct rtllib_device *ieee, int status,
auth->transaction = cpu_to_le16(2); auth->transaction = cpu_to_le16(2);
auth->algorithm = cpu_to_le16(WLAN_AUTH_OPEN); auth->algorithm = cpu_to_le16(WLAN_AUTH_OPEN);
memcpy(auth->header.addr3, ieee->dev->dev_addr, ETH_ALEN); ether_addr_copy(auth->header.addr3, ieee->dev->dev_addr);
memcpy(auth->header.addr2, ieee->dev->dev_addr, ETH_ALEN); ether_addr_copy(auth->header.addr2, ieee->dev->dev_addr);
memcpy(auth->header.addr1, dest, ETH_ALEN); ether_addr_copy(auth->header.addr1, dest);
auth->header.frame_ctl = cpu_to_le16(RTLLIB_STYPE_AUTH); auth->header.frame_ctl = cpu_to_le16(RTLLIB_STYPE_AUTH);
return skb; return skb;
...@@ -1086,9 +1086,9 @@ static struct sk_buff *rtllib_null_func(struct rtllib_device *ieee, short pwr) ...@@ -1086,9 +1086,9 @@ static struct sk_buff *rtllib_null_func(struct rtllib_device *ieee, short pwr)
hdr = (struct rtllib_hdr_3addr *)skb_put(skb, hdr = (struct rtllib_hdr_3addr *)skb_put(skb,
sizeof(struct rtllib_hdr_3addr)); sizeof(struct rtllib_hdr_3addr));
memcpy(hdr->addr1, ieee->current_network.bssid, ETH_ALEN); ether_addr_copy(hdr->addr1, ieee->current_network.bssid);
memcpy(hdr->addr2, ieee->dev->dev_addr, ETH_ALEN); ether_addr_copy(hdr->addr2, ieee->dev->dev_addr);
memcpy(hdr->addr3, ieee->current_network.bssid, ETH_ALEN); ether_addr_copy(hdr->addr3, ieee->current_network.bssid);
hdr->frame_ctl = cpu_to_le16(RTLLIB_FTYPE_DATA | hdr->frame_ctl = cpu_to_le16(RTLLIB_FTYPE_DATA |
RTLLIB_STYPE_NULLFUNC | RTLLIB_FCTL_TODS | RTLLIB_STYPE_NULLFUNC | RTLLIB_FCTL_TODS |
...@@ -1113,8 +1113,8 @@ static struct sk_buff *rtllib_pspoll_func(struct rtllib_device *ieee) ...@@ -1113,8 +1113,8 @@ static struct sk_buff *rtllib_pspoll_func(struct rtllib_device *ieee)
hdr = (struct rtllib_pspoll_hdr *)skb_put(skb, hdr = (struct rtllib_pspoll_hdr *)skb_put(skb,
sizeof(struct rtllib_pspoll_hdr)); sizeof(struct rtllib_pspoll_hdr));
memcpy(hdr->bssid, ieee->current_network.bssid, ETH_ALEN); ether_addr_copy(hdr->bssid, ieee->current_network.bssid);
memcpy(hdr->ta, ieee->dev->dev_addr, ETH_ALEN); ether_addr_copy(hdr->ta, ieee->dev->dev_addr);
hdr->aid = cpu_to_le16(ieee->assoc_id | 0xc000); hdr->aid = cpu_to_le16(ieee->assoc_id | 0xc000);
hdr->frame_ctl = cpu_to_le16(RTLLIB_FTYPE_CTL | RTLLIB_STYPE_PSPOLL | hdr->frame_ctl = cpu_to_le16(RTLLIB_FTYPE_CTL | RTLLIB_STYPE_PSPOLL |
...@@ -1266,11 +1266,11 @@ inline struct sk_buff *rtllib_association_req(struct rtllib_network *beacon, ...@@ -1266,11 +1266,11 @@ inline struct sk_buff *rtllib_association_req(struct rtllib_network *beacon,
hdr->header.frame_ctl = RTLLIB_STYPE_ASSOC_REQ; hdr->header.frame_ctl = RTLLIB_STYPE_ASSOC_REQ;
hdr->header.duration_id = cpu_to_le16(37); hdr->header.duration_id = cpu_to_le16(37);
memcpy(hdr->header.addr1, beacon->bssid, ETH_ALEN); ether_addr_copy(hdr->header.addr1, beacon->bssid);
memcpy(hdr->header.addr2, ieee->dev->dev_addr, ETH_ALEN); ether_addr_copy(hdr->header.addr2, ieee->dev->dev_addr);
memcpy(hdr->header.addr3, beacon->bssid, ETH_ALEN); ether_addr_copy(hdr->header.addr3, beacon->bssid);
memcpy(ieee->ap_mac_addr, beacon->bssid, ETH_ALEN); ether_addr_copy(ieee->ap_mac_addr, beacon->bssid);
hdr->capability = cpu_to_le16(WLAN_CAPABILITY_ESS); hdr->capability = cpu_to_le16(WLAN_CAPABILITY_ESS);
if (beacon->capability & WLAN_CAPABILITY_PRIVACY) if (beacon->capability & WLAN_CAPABILITY_PRIVACY)
...@@ -1830,7 +1830,7 @@ static int auth_rq_parse(struct sk_buff *skb, u8 *dest) ...@@ -1830,7 +1830,7 @@ static int auth_rq_parse(struct sk_buff *skb, u8 *dest)
} }
a = (struct rtllib_authentication *) skb->data; a = (struct rtllib_authentication *) skb->data;
memcpy(dest, a->header.addr2, ETH_ALEN); ether_addr_copy(dest, a->header.addr2);
if (le16_to_cpu(a->algorithm) != WLAN_AUTH_OPEN) if (le16_to_cpu(a->algorithm) != WLAN_AUTH_OPEN)
return WLAN_STATUS_NOT_SUPPORTED_AUTH_ALG; return WLAN_STATUS_NOT_SUPPORTED_AUTH_ALG;
...@@ -1858,7 +1858,7 @@ static short probe_rq_parse(struct rtllib_device *ieee, struct sk_buff *skb, ...@@ -1858,7 +1858,7 @@ static short probe_rq_parse(struct rtllib_device *ieee, struct sk_buff *skb,
if (bssid_match) if (bssid_match)
return -1; return -1;
memcpy(src, header->addr2, ETH_ALEN); ether_addr_copy(src, header->addr2);
skbend = (u8 *)skb->data + skb->len; skbend = (u8 *)skb->data + skb->len;
...@@ -1897,7 +1897,7 @@ static int assoc_rq_parse(struct sk_buff *skb, u8 *dest) ...@@ -1897,7 +1897,7 @@ static int assoc_rq_parse(struct sk_buff *skb, u8 *dest)
a = (struct rtllib_assoc_request_frame *) skb->data; a = (struct rtllib_assoc_request_frame *) skb->data;
memcpy(dest, a->header.addr2, ETH_ALEN); ether_addr_copy(dest, a->header.addr2);
return 0; return 0;
} }
...@@ -2652,7 +2652,7 @@ void rtllib_start_master_bss(struct rtllib_device *ieee) ...@@ -2652,7 +2652,7 @@ void rtllib_start_master_bss(struct rtllib_device *ieee)
ieee->ssid_set = 1; ieee->ssid_set = 1;
} }
memcpy(ieee->current_network.bssid, ieee->dev->dev_addr, ETH_ALEN); ether_addr_copy(ieee->current_network.bssid, ieee->dev->dev_addr);
ieee->set_chan(ieee->dev, ieee->current_network.channel); ieee->set_chan(ieee->dev, ieee->current_network.channel);
ieee->state = RTLLIB_LINKED; ieee->state = RTLLIB_LINKED;
...@@ -3519,9 +3519,9 @@ inline struct sk_buff *rtllib_disauth_skb(struct rtllib_network *beacon, ...@@ -3519,9 +3519,9 @@ inline struct sk_buff *rtllib_disauth_skb(struct rtllib_network *beacon,
disauth->header.frame_ctl = cpu_to_le16(RTLLIB_STYPE_DEAUTH); disauth->header.frame_ctl = cpu_to_le16(RTLLIB_STYPE_DEAUTH);
disauth->header.duration_id = 0; disauth->header.duration_id = 0;
memcpy(disauth->header.addr1, beacon->bssid, ETH_ALEN); ether_addr_copy(disauth->header.addr1, beacon->bssid);
memcpy(disauth->header.addr2, ieee->dev->dev_addr, ETH_ALEN); ether_addr_copy(disauth->header.addr2, ieee->dev->dev_addr);
memcpy(disauth->header.addr3, beacon->bssid, ETH_ALEN); ether_addr_copy(disauth->header.addr3, beacon->bssid);
disauth->reason = cpu_to_le16(asRsn); disauth->reason = cpu_to_le16(asRsn);
return skb; return skb;
...@@ -3546,9 +3546,9 @@ inline struct sk_buff *rtllib_disassociate_skb(struct rtllib_network *beacon, ...@@ -3546,9 +3546,9 @@ inline struct sk_buff *rtllib_disassociate_skb(struct rtllib_network *beacon,
disass->header.frame_ctl = cpu_to_le16(RTLLIB_STYPE_DISASSOC); disass->header.frame_ctl = cpu_to_le16(RTLLIB_STYPE_DISASSOC);
disass->header.duration_id = 0; disass->header.duration_id = 0;
memcpy(disass->header.addr1, beacon->bssid, ETH_ALEN); ether_addr_copy(disass->header.addr1, beacon->bssid);
memcpy(disass->header.addr2, ieee->dev->dev_addr, ETH_ALEN); ether_addr_copy(disass->header.addr2, ieee->dev->dev_addr);
memcpy(disass->header.addr3, beacon->bssid, ETH_ALEN); ether_addr_copy(disass->header.addr3, beacon->bssid);
disass->reason = cpu_to_le16(asRsn); disass->reason = cpu_to_le16(asRsn);
return skb; return skb;
......
...@@ -160,7 +160,7 @@ int rtllib_wx_set_wap(struct rtllib_device *ieee, ...@@ -160,7 +160,7 @@ int rtllib_wx_set_wap(struct rtllib_device *ieee,
if (is_zero_ether_addr(temp->sa_data)) { if (is_zero_ether_addr(temp->sa_data)) {
spin_lock_irqsave(&ieee->lock, flags); spin_lock_irqsave(&ieee->lock, flags);
memcpy(ieee->current_network.bssid, temp->sa_data, ETH_ALEN); ether_addr_copy(ieee->current_network.bssid, temp->sa_data);
ieee->wap_set = 0; ieee->wap_set = 0;
spin_unlock_irqrestore(&ieee->lock, flags); spin_unlock_irqrestore(&ieee->lock, flags);
ret = -1; ret = -1;
...@@ -177,7 +177,7 @@ int rtllib_wx_set_wap(struct rtllib_device *ieee, ...@@ -177,7 +177,7 @@ int rtllib_wx_set_wap(struct rtllib_device *ieee,
spin_lock_irqsave(&ieee->lock, flags); spin_lock_irqsave(&ieee->lock, flags);
ieee->cannot_notify = false; ieee->cannot_notify = false;
memcpy(ieee->current_network.bssid, temp->sa_data, ETH_ALEN); ether_addr_copy(ieee->current_network.bssid, temp->sa_data);
ieee->wap_set = !is_zero_ether_addr(temp->sa_data); ieee->wap_set = !is_zero_ether_addr(temp->sa_data);
spin_unlock_irqrestore(&ieee->lock, flags); spin_unlock_irqrestore(&ieee->lock, flags);
......
...@@ -609,8 +609,8 @@ int rtllib_xmit_inter(struct sk_buff *skb, struct net_device *dev) ...@@ -609,8 +609,8 @@ int rtllib_xmit_inter(struct sk_buff *skb, struct net_device *dev)
goto success; goto success;
} }
/* Save source and destination addresses */ /* Save source and destination addresses */
memcpy(dest, skb->data, ETH_ALEN); ether_addr_copy(dest, skb->data);
memcpy(src, skb->data+ETH_ALEN, ETH_ALEN); ether_addr_copy(src, skb->data + ETH_ALEN);
memset(skb->cb, 0, sizeof(skb->cb)); memset(skb->cb, 0, sizeof(skb->cb));
ether_type = ntohs(((struct ethhdr *)skb->data)->h_proto); ether_type = ntohs(((struct ethhdr *)skb->data)->h_proto);
...@@ -695,22 +695,22 @@ int rtllib_xmit_inter(struct sk_buff *skb, struct net_device *dev) ...@@ -695,22 +695,22 @@ int rtllib_xmit_inter(struct sk_buff *skb, struct net_device *dev)
/* To DS: Addr1 = BSSID, Addr2 = SA, /* To DS: Addr1 = BSSID, Addr2 = SA,
* Addr3 = DA * Addr3 = DA
*/ */
memcpy(&header.addr1, ieee->current_network.bssid, ether_addr_copy(header.addr1,
ETH_ALEN); ieee->current_network.bssid);
memcpy(&header.addr2, &src, ETH_ALEN); ether_addr_copy(header.addr2, src);
if (IsAmsdu) if (IsAmsdu)
memcpy(&header.addr3, ether_addr_copy(header.addr3,
ieee->current_network.bssid, ETH_ALEN); ieee->current_network.bssid);
else else
memcpy(&header.addr3, &dest, ETH_ALEN); ether_addr_copy(header.addr3, dest);
} else if (ieee->iw_mode == IW_MODE_ADHOC) { } else if (ieee->iw_mode == IW_MODE_ADHOC) {
/* not From/To DS: Addr1 = DA, Addr2 = SA, /* not From/To DS: Addr1 = DA, Addr2 = SA,
* Addr3 = BSSID * Addr3 = BSSID
*/ */
memcpy(&header.addr1, dest, ETH_ALEN); ether_addr_copy(header.addr1, dest);
memcpy(&header.addr2, src, ETH_ALEN); ether_addr_copy(header.addr2, src);
memcpy(&header.addr3, ieee->current_network.bssid, ether_addr_copy(header.addr3,
ETH_ALEN); ieee->current_network.bssid);
} }
bIsMulticast = is_multicast_ether_addr(header.addr1); bIsMulticast = is_multicast_ether_addr(header.addr1);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment