#define _PRIVACY_      BIT(14)
 #define _ORDER_                BIT(15)
 
-#define SetToDs(pbuf)  \
-       do      {       \
-               *(unsigned short *)(pbuf) |= cpu_to_le16(_TO_DS_); \
-       } while (0)
+#define SetToDs(pbuf) ({ \
+       *(unsigned short *)(pbuf) |= cpu_to_le16(_TO_DS_); \
+})
 
 #define GetToDs(pbuf)  (((*(unsigned short *)(pbuf)) & \
                        le16_to_cpu(_TO_DS_)) != 0)
 
-#define ClearToDs(pbuf)        \
-       do      {       \
-               *(unsigned short *)(pbuf) &= (~cpu_to_le16(_TO_DS_)); \
-       } while (0)
+#define ClearToDs(pbuf)        ({ \
+       *(unsigned short *)(pbuf) &= (~cpu_to_le16(_TO_DS_)); \
+})
 
-#define SetFrDs(pbuf)  \
-       do      {       \
-               *(unsigned short *)(pbuf) |= cpu_to_le16(_FROM_DS_); \
-       } while (0)
+#define SetFrDs(pbuf) ({ \
+       *(unsigned short *)(pbuf) |= cpu_to_le16(_FROM_DS_); \
+})
 
 #define GetFrDs(pbuf)  (((*(unsigned short *)(pbuf)) & \
                        le16_to_cpu(_FROM_DS_)) != 0)
 
-#define ClearFrDs(pbuf)        \
-       do      {       \
-               *(unsigned short *)(pbuf) &= (~cpu_to_le16(_FROM_DS_)); \
-       } while (0)
+#define ClearFrDs(pbuf)        ({ \
+       *(unsigned short *)(pbuf) &= (~cpu_to_le16(_FROM_DS_)); \
+})
 
 #define get_tofr_ds(pframe)    ((GetToDs(pframe) << 1) | GetFrDs(pframe))
 
 
-#define SetMFrag(pbuf) \
-       do      {       \
-               *(unsigned short *)(pbuf) |= cpu_to_le16(_MORE_FRAG_); \
-       } while (0)
+#define SetMFrag(pbuf) ({ \
+       *(unsigned short *)(pbuf) |= cpu_to_le16(_MORE_FRAG_); \
+})
 
 #define GetMFrag(pbuf) (((*(unsigned short *)(pbuf)) & \
                        le16_to_cpu(_MORE_FRAG_)) != 0)
 
-#define ClearMFrag(pbuf)       \
-       do      {       \
-               *(unsigned short *)(pbuf) &= (~cpu_to_le16(_MORE_FRAG_)); \
-       } while (0)
+#define ClearMFrag(pbuf) ({ \
+       *(unsigned short *)(pbuf) &= (~cpu_to_le16(_MORE_FRAG_)); \
+})
 
-#define SetRetry(pbuf) \
-       do      {       \
-               *(unsigned short *)(pbuf) |= cpu_to_le16(_RETRY_); \
-       } while (0)
+#define SetRetry(pbuf) ({ \
+       *(unsigned short *)(pbuf) |= cpu_to_le16(_RETRY_); \
+})
 
 #define GetRetry(pbuf) (((*(unsigned short *)(pbuf)) & \
                        le16_to_cpu(_RETRY_)) != 0)
 
-#define ClearRetry(pbuf)       \
-       do      {       \
-               *(unsigned short *)(pbuf) &= (~cpu_to_le16(_RETRY_)); \
-       } while (0)
+#define ClearRetry(pbuf) ({ \
+       *(unsigned short *)(pbuf) &= (~cpu_to_le16(_RETRY_)); \
+})
 
-#define SetPwrMgt(pbuf)        \
-       do      {       \
-               *(unsigned short *)(pbuf) |= cpu_to_le16(_PWRMGT_); \
-       } while (0)
+#define SetPwrMgt(pbuf) ({ \
+       *(unsigned short *)(pbuf) |= cpu_to_le16(_PWRMGT_); \
+})
 
 #define GetPwrMgt(pbuf)        (((*(unsigned short *)(pbuf)) & \
                        le16_to_cpu(_PWRMGT_)) != 0)
 
-#define ClearPwrMgt(pbuf)      \
-       do      {       \
-               *(unsigned short *)(pbuf) &= (~cpu_to_le16(_PWRMGT_)); \
-       } while (0)
+#define ClearPwrMgt(pbuf) ({ \
+       *(unsigned short *)(pbuf) &= (~cpu_to_le16(_PWRMGT_)); \
+})
 
-#define SetMData(pbuf) \
-       do      {       \
-               *(unsigned short *)(pbuf) |= cpu_to_le16(_MORE_DATA_); \
-       } while (0)
+#define SetMData(pbuf) ({ \
+       *(unsigned short *)(pbuf) |= cpu_to_le16(_MORE_DATA_); \
+})
 
 #define GetMData(pbuf) (((*(unsigned short *)(pbuf)) & \
                        le16_to_cpu(_MORE_DATA_)) != 0)
 
-#define ClearMData(pbuf)       \
-       do      {       \
-               *(unsigned short *)(pbuf) &= (~cpu_to_le16(_MORE_DATA_)); \
-       } while (0)
+#define ClearMData(pbuf) ({ \
+       *(unsigned short *)(pbuf) &= (~cpu_to_le16(_MORE_DATA_)); \
+})
 
-#define SetPrivacy(pbuf)       \
-       do      {       \
-               *(unsigned short *)(pbuf) |= cpu_to_le16(_PRIVACY_); \
-       } while (0)
+#define SetPrivacy(pbuf) ({ \
+       *(unsigned short *)(pbuf) |= cpu_to_le16(_PRIVACY_); \
+})
 
 #define GetPrivacy(pbuf)       (((*(unsigned short *)(pbuf)) & \
                                le16_to_cpu(_PRIVACY_)) != 0)
 
-#define ClearPrivacy(pbuf)     \
-       do      {       \
-               *(unsigned short *)(pbuf) &= (~cpu_to_le16(_PRIVACY_)); \
-       } while (0)
+#define ClearPrivacy(pbuf) ({ \
+       *(unsigned short *)(pbuf) &= (~cpu_to_le16(_PRIVACY_)); \
+})
 
 
 #define GetOrder(pbuf) (((*(unsigned short *)(pbuf)) & \
 #define GetTupleCache(pbuf)    (cpu_to_le16(*(unsigned short *)\
                                ((addr_t)(pbuf) + 22)))
 
-#define SetFragNum(pbuf, num) \
-       do {    \
-               *(unsigned short *)((addr_t)(pbuf) + 22) = \
-                       ((*(unsigned short *)((addr_t)(pbuf) + 22)) & \
-                       le16_to_cpu(~(0x000f))) | \
-                       cpu_to_le16(0x0f & (num));     \
-       } while (0)
-
-#define SetSeqNum(pbuf, num) \
-       do {    \
-               *(unsigned short *)((addr_t)(pbuf) + 22) = \
-                       ((*(unsigned short *)((addr_t)(pbuf) + 22)) & \
-                       le16_to_cpu((unsigned short)0x000f)) | \
-                       le16_to_cpu((unsigned short)(0xfff0 & (num << 4))); \
-       } while (0)
-
-#define SetDuration(pbuf, dur) \
-       do {    \
-               *(unsigned short *)((addr_t)(pbuf) + 2) |= \
-                       cpu_to_le16(0xffff & (dur)); \
-       } while (0)
-
-#define SetPriority(pbuf, tid) \
-       do      {       \
-               *(unsigned short *)(pbuf) |= cpu_to_le16(tid & 0xf); \
-       } while (0)
+#define SetFragNum(pbuf, num) ({ \
+       *(unsigned short *)((addr_t)(pbuf) + 22) = \
+       ((*(unsigned short *)((addr_t)(pbuf) + 22)) & \
+       le16_to_cpu(~(0x000f))) | \
+       cpu_to_le16(0x0f & (num));     \
+})
+
+#define SetSeqNum(pbuf, num) ({ \
+       *(unsigned short *)((addr_t)(pbuf) + 22) = \
+       ((*(unsigned short *)((addr_t)(pbuf) + 22)) & \
+       le16_to_cpu((unsigned short)0x000f)) | \
+       le16_to_cpu((unsigned short)(0xfff0 & (num << 4))); \
+})
+
+#define SetDuration(pbuf, dur) ({ \
+       *(unsigned short *)((addr_t)(pbuf) + 2) |= \
+       cpu_to_le16(0xffff & (dur)); \
+})
+
+#define SetPriority(pbuf, tid) ({ \
+       *(unsigned short *)(pbuf) |= cpu_to_le16(tid & 0xf); \
+})
 
 #define GetPriority(pbuf)      ((le16_to_cpu(*(unsigned short *)(pbuf))) & 0xf)
 
-#define SetAckpolicy(pbuf, ack)        \
-       do      {       \
-               *(unsigned short *)(pbuf) |= cpu_to_le16((ack & 3) << 5); \
-       } while (0)
+#define SetAckpolicy(pbuf, ack) ({ \
+       *(unsigned short *)(pbuf) |= cpu_to_le16((ack & 3) << 5); \
+})
 
 #define GetAckpolicy(pbuf) (((le16_to_cpu(*(unsigned short *)pbuf)) >> 5) & 0x3)
 
 #define GetAMsdu(pbuf) (((le16_to_cpu(*(unsigned short *)pbuf)) >> 7) & 0x1)
 
-#define SetAMsdu(pbuf, amsdu)  \
-       do      {       \
-               *(unsigned short *)(pbuf) |= cpu_to_le16((amsdu & 1) << 7); \
-       } while (0)
+#define SetAMsdu(pbuf, amsdu) ({ \
+       *(unsigned short *)(pbuf) |= cpu_to_le16((amsdu & 1) << 7); \
+})
 
 #define GetAid(pbuf)   (cpu_to_le16(*(unsigned short *)((addr_t)(pbuf) + 2)) \
                        & 0x3fff)
 #define IEEE80211_DELBA_PARAM_TID_MASK 0xF000
 #define IEEE80211_DELBA_PARAM_INITIATOR_MASK 0x0800
 
-#define SetOrderBit(pbuf)      \
-       do      {       \
-               *(unsigned short *)(pbuf) |= cpu_to_le16(_ORDER_); \
-       } while (0)
+#define SetOrderBit(pbuf) ({ \
+       *(unsigned short *)(pbuf) |= cpu_to_le16(_ORDER_); \
+})
 
 #define GetOrderBit(pbuf)      (((*(unsigned short *)(pbuf)) & \
                                le16_to_cpu(_ORDER_)) != 0)