diff options
author | Ksenija Stanojevic <ksenija.stanojevic@gmail.com> | 2015-02-28 19:46:57 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2015-03-01 17:07:43 -0800 |
commit | c63eee546079859e9b6ede13f32457b8bf2fb1ff (patch) | |
tree | 7b9421663258e3f10001831d8e174d04c70fac11 /drivers/staging/rtl8192e/rtllib_wx.c | |
parent | c60cfc8e3b43a7477d519f91ef8f7f5edf0adff4 (diff) | |
download | linux-stable-c63eee546079859e9b6ede13f32457b8bf2fb1ff.tar.gz linux-stable-c63eee546079859e9b6ede13f32457b8bf2fb1ff.tar.bz2 linux-stable-c63eee546079859e9b6ede13f32457b8bf2fb1ff.zip |
Staging: rtl8192e: Use ether_addr_copy() instead of memcpy()
This patch replaces memcpy with ether_addr_copy.
Also pathole was used to make sure that arguments passed to ether_addr_copy
are aligned to u16.
First argument is iwe.u.ap_addr.sa_data i output of pahole is:
struct iw_event {
__u16 len; /* 0 2 */
__u16 cmd; /* 2 2 */
/* XXX 4 bytes hole, try to pack */
union iwreq_data u; /* 8 16 */
/* size: 24, cachelines: 1, members: 3 */
/* sum members: 20, holes: 1, sum holes: 4 */
/* last cacheline: 24 bytes */
};
and inside union iwreq_data u is sa_data:
struct sockaddr {
/* typedef sa_family_t -> __kernel_sa_family_t */ short unsigned int sa_family; /* 8 2 */
char sa_data[14]; /* 10 14 */
} ap_addr; /* 16 */
sa_data is a char array of size 14, and the number of bytes copied using
ether_addr_copy() is 6.
Second argument is network->bssid and output of pahole is:
struct rtllib_network {
u8 bssid[6]; /* 0 6 */
u8 channel; /* 6 1 */
u8 ssid[33]; /* 7 33 */
u8 ssid_len; /* 40 1 */
u8 hidden_ssid[33]; /* 41 33 */
/* --- cacheline 1 boundary (64 bytes) was 10 bytes ago --- */
u8 hidden_ssid_len; /* 74 1 */
/* XXX 1 byte hole, try to pack */
struct rtllib_qos_data qos_data; /* 76 48 */
bool bWithAironetIE; /* 124 1 */
bool bCkipSupported; /* 125 1 */
bool bCcxRmEnable; /* 126 1 */
/* XXX 1 byte hole, try to pack */
/* --- cacheline 2 boundary (128 bytes) --- */
u16 CcxRmState[2]; /* 128 4 */
bool bMBssidValid; /* 132 1 */
u8 MBssidMask; /* 133 1 */
u8 MBssid[6]; /* 134 6 */
bool bWithCcxVerNum; /* 140 1 */
u8 BssCcxVerNumber; /* 141 1 */
/* XXX 2 bytes hole, try to pack */
struct rtllib_rx_stats stats; /* 144 120 */
/* --- cacheline 4 boundary (256 bytes) was 8 bytes ago --- */
u16 capability; /* 264 2 */
u8 rates[12]; /* 266 12 */
u8 rates_len; /* 278 1 */
u8 rates_ex[16]; /* 279 16 */
u8 rates_ex_len; /* 295 1 */
long unsigned int last_scanned; /* 296 8 */
u8 mode; /* 304 1 */
/* XXX 3 bytes hole, try to pack */
u32 flags; /* 308 4 */
u32 last_associate; /* 312 4 */
u32 time_stamp[2]; /* 316 8 */
/* --- cacheline 5 boundary (320 bytes) was 4 bytes ago --- */
u16 beacon_interval; /* 324 2 */
u16 listen_interval; /* 326 2 */
u16 atim_window; /* 328 2 */
u8 erp_value; /* 330 1 */
u8 wpa_ie[64]; /* 331 64 */
/* XXX 5 bytes hole, try to pack */
/* --- cacheline 6 boundary (384 bytes) was 16 bytes ago --- */
size_t wpa_ie_len; /* 400 8 */
u8 rsn_ie[64]; /* 408 64 */
/* --- cacheline 7 boundary (448 bytes) was 24 bytes ago --- */
size_t rsn_ie_len; /* 472 8 */
u8 wzc_ie[256]; /* 480 256 */
/* --- cacheline 11 boundary (704 bytes) was 32 bytes ago --- */
size_t wzc_ie_len; /* 736 8 */
struct rtllib_tim_parameters tim; /* 744 2 */
u8 dtim_period; /* 746 1 */
u8 dtim_data; /* 747 1 */
/* XXX 4 bytes hole, try to pack */
u64 last_dtim_sta_time; /* 752 8 */
u8 wmm_info; /* 760 1 */
/* XXX 1 byte hole, try to pack */
struct rtllib_wmm_ac_param wmm_param[4]; /* 762 16 */
/* --- cacheline 12 boundary (768 bytes) was 10 bytes ago --- */
u8 Turbo_Enable; /* 778 1 */
/* XXX 1 byte hole, try to pack */
u16 CountryIeLen; /* 780 2 */
u8 CountryIeBuf[255]; /* 782 255 */
/* XXX 3 bytes hole, try to pack */
/* --- cacheline 16 boundary (1024 bytes) was 16 bytes ago --- */
struct bss_ht bssht; /* 1040 84 */
/* --- cacheline 17 boundary (1088 bytes) was 36 bytes ago --- */
bool broadcom_cap_exist; /* 1124 1 */
bool realtek_cap_exit; /* 1125 1 */
bool marvell_cap_exist; /* 1126 1 */
bool ralink_cap_exist; /* 1127 1 */
bool atheros_cap_exist; /* 1128 1 */
bool cisco_cap_exist; /* 1129 1 */
bool airgo_cap_exist; /* 1130 1 */
bool unknown_cap_exist; /* 1131 1 */
bool berp_info_valid; /* 1132 1 */
bool buseprotection; /* 1133 1 */
bool bIsNetgear854T; /* 1134 1 */
u8 SignalStrength; /* 1135 1 */
u8 RSSI; /* 1136 1 */
/* XXX 7 bytes hole, try to pack */
struct list_head list; /* 1144 16 */
/* --- cacheline 18 boundary (1152 bytes) was 8 bytes ago --- */
/* size: 1160, cachelines: 19, members: 61 */
/* sum members: 1132, holes: 10, sum holes: 28 */
/* last cacheline: 8 bytes */
};
network->bssid is char array of size 6.
Issue found by checkpatch.pl
Signed-off-by: Ksenija Stanojevic <ksenija.stanojevic@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/rtl8192e/rtllib_wx.c')
-rw-r--r-- | drivers/staging/rtl8192e/rtllib_wx.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/staging/rtl8192e/rtllib_wx.c b/drivers/staging/rtl8192e/rtllib_wx.c index 02faaf3980e7..d5f4bcb738ce 100644 --- a/drivers/staging/rtl8192e/rtllib_wx.c +++ b/drivers/staging/rtl8192e/rtllib_wx.c @@ -32,7 +32,7 @@ #include <linux/wireless.h> #include <linux/kmod.h> #include <linux/module.h> - +#include <linux/etherdevice.h> #include "rtllib.h" struct modes_unit { char *mode_string; @@ -65,7 +65,7 @@ static inline char *rtl819x_translate_scan(struct rtllib_device *ieee, /* First entry *MUST* be the AP MAC address */ iwe.cmd = SIOCGIWAP; iwe.u.ap_addr.sa_family = ARPHRD_ETHER; - memcpy(iwe.u.ap_addr.sa_data, network->bssid, ETH_ALEN); + ether_addr_copy(iwe.u.ap_addr.sa_data, network->bssid); start = iwe_stream_add_event_rsl(info, start, stop, &iwe, IW_EV_ADDR_LEN); /* Remaining entries will be displayed in the order we provide them */ |