|
@@ -16,6 +16,7 @@
|
|
|
* Contact Information:
|
|
|
* wlanfae <wlanfae@realtek.com>
|
|
|
******************************************************************************/
|
|
|
+#include <linux/unaligned/access_ok.h>
|
|
|
#include "rtllib.h"
|
|
|
#include "rtl819x_BA.h"
|
|
|
|
|
@@ -79,7 +80,6 @@ static struct sk_buff *rtllib_ADDBA(struct rtllib_device *ieee, u8 *Dst,
|
|
|
struct sk_buff *skb = NULL;
|
|
|
struct rtllib_hdr_3addr *BAReq = NULL;
|
|
|
u8 *tag = NULL;
|
|
|
- __le16 tmp = 0;
|
|
|
u16 len = ieee->tx_headroom + 9;
|
|
|
|
|
|
RTLLIB_DEBUG(RTLLIB_DL_TRACE | RTLLIB_DL_BA, "========>%s(), frame(%d)"
|
|
@@ -115,15 +115,15 @@ static struct sk_buff *rtllib_ADDBA(struct rtllib_device *ieee, u8 *Dst,
|
|
|
|
|
|
if (ACT_ADDBARSP == type) {
|
|
|
RT_TRACE(COMP_DBG, "====>to send ADDBARSP\n");
|
|
|
- tmp = cpu_to_le16(StatusCode);
|
|
|
- memcpy(tag, (u8 *)&tmp, 2);
|
|
|
+
|
|
|
+ put_unaligned_le16(StatusCode, tag);
|
|
|
tag += 2;
|
|
|
}
|
|
|
- tmp = cpu_to_le16(pBA->BaParamSet.shortData);
|
|
|
- memcpy(tag, (u8 *)&tmp, 2);
|
|
|
+
|
|
|
+ put_unaligned_le16(pBA->BaParamSet.shortData, tag);
|
|
|
tag += 2;
|
|
|
- tmp = cpu_to_le16(pBA->BaTimeoutValue);
|
|
|
- memcpy(tag, (u8 *)&tmp, 2);
|
|
|
+
|
|
|
+ put_unaligned_le16(pBA->BaTimeoutValue, tag);
|
|
|
tag += 2;
|
|
|
|
|
|
if (ACT_ADDBAREQ == type) {
|
|
@@ -143,7 +143,6 @@ static struct sk_buff *rtllib_DELBA(struct rtllib_device *ieee, u8 *dst,
|
|
|
struct sk_buff *skb = NULL;
|
|
|
struct rtllib_hdr_3addr *Delba = NULL;
|
|
|
u8 *tag = NULL;
|
|
|
- __le16 tmp = 0;
|
|
|
u16 len = 6 + ieee->tx_headroom;
|
|
|
|
|
|
if (net_ratelimit())
|
|
@@ -178,11 +177,11 @@ static struct sk_buff *rtllib_DELBA(struct rtllib_device *ieee, u8 *dst,
|
|
|
*tag++ = ACT_CAT_BA;
|
|
|
*tag++ = ACT_DELBA;
|
|
|
|
|
|
- tmp = cpu_to_le16(DelbaParamSet.shortData);
|
|
|
- memcpy(tag, (u8 *)&tmp, 2);
|
|
|
+
|
|
|
+ put_unaligned_le16(DelbaParamSet.shortData, tag);
|
|
|
tag += 2;
|
|
|
- tmp = cpu_to_le16(ReasonCode);
|
|
|
- memcpy(tag, (u8 *)&tmp, 2);
|
|
|
+
|
|
|
+ put_unaligned_le16(ReasonCode, tag);
|
|
|
tag += 2;
|
|
|
|
|
|
RTLLIB_DEBUG_DATA(RTLLIB_DL_DATA|RTLLIB_DL_BA, skb->data, skb->len);
|