carl9170: fix struct alignment conflict
[carl9170fw.git] / include / shared / wlan.h
index ea17995b32f4ef60ac082e49e0f64188c8ad2652..61c311216fb96f35933f63448198e1b9eaf177e5 100644 (file)
@@ -270,10 +270,10 @@ struct ar9170_tx_frame {
        struct ar9170_tx_hwdesc hdr;
 
        union {
-               struct ieee80211_hdr i3e;
+               struct ieee80211_hdr i3e __packed __aligned(2);
                u8 payload[0];
        } data;
-} __packed;
+} __packed __aligned(4);
 
 struct carl9170_tx_superframe {
        struct carl9170_tx_superdesc s;
@@ -367,27 +367,27 @@ struct ar9170_rx_macstatus {
 
 struct ar9170_rx_frame_single {
        struct ar9170_rx_head phy_head;
-       struct ieee80211_hdr i3e;
+       struct ieee80211_hdr i3e __packed __aligned(2);
        struct ar9170_rx_phystatus phy_tail;
        struct ar9170_rx_macstatus macstatus;
-} __packed;
+};
 
 struct ar9170_rx_frame_head {
        struct ar9170_rx_head phy_head;
-       struct ieee80211_hdr i3e;
+       struct ieee80211_hdr i3e __packed __aligned(2);
        struct ar9170_rx_macstatus macstatus;
-} __packed;
+};
 
 struct ar9170_rx_frame_middle {
-       struct ieee80211_hdr i3e;
+       struct ieee80211_hdr i3e __packed __aligned(2);
        struct ar9170_rx_macstatus macstatus;
-} __packed;
+};
 
 struct ar9170_rx_frame_tail {
-       struct ieee80211_hdr i3e;
+       struct ieee80211_hdr i3e __packed __aligned(2);
        struct ar9170_rx_phystatus phy_tail;
        struct ar9170_rx_macstatus macstatus;
-} __packed;
+} __packed __aligned(4);
 
 struct ar9170_rx_frame {
        union {
@@ -395,8 +395,8 @@ struct ar9170_rx_frame {
                struct ar9170_rx_frame_head head;
                struct ar9170_rx_frame_middle middle;
                struct ar9170_rx_frame_tail tail;
-       } __packed;
-} __packed;
+       };
+};
 
 static inline u8 ar9170_get_decrypt_type(struct ar9170_rx_macstatus *t)
 {