staging: vt665x: fix alignment constraints
authorArnd Bergmann <arnd@arndb.de>
Thu, 4 Feb 2021 16:27:17 +0000 (17:27 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 6 Feb 2021 13:11:21 +0000 (14:11 +0100)
multiple structures contains a ieee80211_rts structure, which is required to
have at least two byte alignment, but are annotated with a __packed attribute
to force single-byte alignment:

staging/vt6656/rxtx.h:98:1: warning: alignment 1 of 'struct vnt_rts_g' is less than 2 [-Wpacked-not-aligned]
staging/vt6656/rxtx.h:106:1: warning: alignment 1 of 'struct vnt_rts_ab' is less than 2 [-Wpacked-not-aligned]
staging/vt6656/rxtx.h:116:1: warning: alignment 1 of 'struct vnt_cts' is less than 2 [-Wpacked-not-aligned]

I see no reason why the structure itself would be misaligned, and all members
have at least two-byte alignment within the structure, so use the same
constraint on the sturcture itself.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Link: https://lore.kernel.org/r/20210204162731.3132069-1-arnd@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/vt6655/rxtx.h
drivers/staging/vt6656/rxtx.h

index 464dd89078b2bc7508a775c080a4f4ca306c7555..e7061d3833062f25ff532f36486f8d0c80cc97a4 100644 (file)
@@ -111,7 +111,7 @@ struct vnt_rts_g {
        __le16 duration_bb;
        u16 reserved;
        struct ieee80211_rts data;
-} __packed;
+} __packed __aligned(2);
 
 struct vnt_rts_g_fb {
        struct vnt_phy_field b;
@@ -125,14 +125,14 @@ struct vnt_rts_g_fb {
        __le16 rts_duration_ba_f1;
        __le16 rts_duration_aa_f1;
        struct ieee80211_rts data;
-} __packed;
+} __packed __aligned(2);
 
 struct vnt_rts_ab {
        struct vnt_phy_field ab;
        __le16 duration;
        u16 reserved;
        struct ieee80211_rts data;
-} __packed;
+} __packed __aligned(2);
 
 struct vnt_rts_a_fb {
        struct vnt_phy_field a;
@@ -141,7 +141,7 @@ struct vnt_rts_a_fb {
        __le16 rts_duration_f0;
        __le16 rts_duration_f1;
        struct ieee80211_rts data;
-} __packed;
+} __packed __aligned(2);
 
 /* CTS buffer header */
 struct vnt_cts {
index 6ca2ca32d0367465686a728d598b3dcd49a3e920..f23440799443b761713fb2101f9a8bbfd9be0158 100644 (file)
@@ -95,7 +95,7 @@ struct vnt_rts_g {
        u16 wReserved;
        struct ieee80211_rts data;
        struct vnt_tx_datahead_g data_head;
-} __packed;
+} __packed __aligned(2);
 
 struct vnt_rts_ab {
        struct vnt_phy_field ab;
@@ -103,7 +103,7 @@ struct vnt_rts_ab {
        u16 wReserved;
        struct ieee80211_rts data;
        struct vnt_tx_datahead_ab data_head;
-} __packed;
+} __packed __aligned(2);
 
 /* CTS buffer header */
 struct vnt_cts {
@@ -113,7 +113,7 @@ struct vnt_cts {
        struct ieee80211_cts data;
        u16 reserved2;
        struct vnt_tx_datahead_g data_head;
-} __packed;
+} __packed __aligned(2);
 
 union vnt_tx_data_head {
        /* rts g */