Introduce the use of function put_unaligned_le16.
This is done using the following Coccinelle semantic patch:
//<smpl>
@@ identifier tmp; expression ptr; expression y,e; type T; @@
- tmp = cpu_to_le16(y);
<+... when != tmp
- memcpy(ptr, (T)&tmp, ...);
+ put_unaligned_le16(y,ptr);
...+>
? tmp = e
@@ type T; identifier tmp; @@
- T tmp;
...when != tmp
//</smpl>
Corresponding header file has been added too.
Signed-off-by: Amitoj Kaur Chawla <amitoj1606@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
#define _RTW_MLME_EXT_C_
#include <linux/ieee80211.h>
#define _RTW_MLME_EXT_C_
#include <linux/ieee80211.h>
+#include <asm/unaligned.h>
#include <osdep_service.h>
#include <drv_types.h>
#include <osdep_service.h>
#include <drv_types.h>
unsigned char *pframe, *p;
struct rtw_ieee80211_hdr *pwlanhdr;
__le16 *fctrl;
unsigned char *pframe, *p;
struct rtw_ieee80211_hdr *pwlanhdr;
__le16 *fctrl;
unsigned int i, j, ie_len, index = 0;
unsigned char rf_type, bssrate[NumRates], sta_bssrate[NumRates];
struct ndis_802_11_var_ie *pIE;
unsigned int i, j, ie_len, index = 0;
unsigned char rf_type, bssrate[NumRates], sta_bssrate[NumRates];
struct ndis_802_11_var_ie *pIE;
/* listen interval */
/* todo: listen interval for power saving */
/* listen interval */
/* todo: listen interval for power saving */
- le_tmp = cpu_to_le16(3);
- memcpy(pframe , (unsigned char *)&le_tmp, 2);
+ put_unaligned_le16(3, pframe);
pframe += 2;
pattrib->pktlen += 2;
pframe += 2;
pattrib->pktlen += 2;