#include <wifi.h>
 #include <rtl8723a_cmd.h>
 #include <rtl8723a_hal.h>
+#include <asm/unaligned.h>
 
 extern unsigned char WMM_OUI23A[];
 extern unsigned char WPS_OUI23A[];
        struct wlan_bssid_ex *pnetwork_mlmeext = &pmlmeinfo->network;
        unsigned char *pie = pnetwork_mlmeext->IEs;
        u8 *p, *dst_ie, *premainder_ie = NULL, *pbackup_remainder_ie = NULL;
-       __le16 tim_bitmap_le;
        uint offset, tmp_len, tim_ielen, tim_ie_offset, remainder_ielen;
 
-       tim_bitmap_le = cpu_to_le16(pstapriv->tim_bitmap);
-
        p = rtw_get_ie23a(pie, WLAN_EID_TIM, &tim_ielen,
                          pnetwork_mlmeext->IELength);
        if (p != NULL && tim_ielen > 0) {
                *dst_ie++ = 0;
 
        if (tim_ielen == 4) {
-               *dst_ie++ = *(u8 *)&tim_bitmap_le;
+               *dst_ie++ = pstapriv->tim_bitmap & 0xff;
        } else if (tim_ielen == 5) {
-               memcpy(dst_ie, &tim_bitmap_le, 2);
+               put_unaligned_le16(pstapriv->tim_bitmap, dst_ie);
                dst_ie += 2;
        }