2021-02-04 16:31:14

by Arnd Bergmann

[permalink] [raw]
Subject: [PATCH] wl3501: fix alignment constraints

From: Arnd Bergmann <[email protected]>

struct wl3501_80211_tx_hdr contains a ieee80211_hdr structure, which is
required to have at least two byte alignment, and this conflicts with
the __packed attribute:

wireless/wl3501.h:553:1: warning: alignment 1 of 'struct wl3501_80211_tx_hdr' is less than 2 [-Wpacked-not-aligned]

Mark wl3501_80211_tx_hdr itself as having two-byte alignment to ensure the
inner structure is properly aligned.

Signed-off-by: Arnd Bergmann <[email protected]>
---
drivers/net/wireless/wl3501.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/wl3501.h b/drivers/net/wireless/wl3501.h
index b446cb369557..e98e04ee9a2c 100644
--- a/drivers/net/wireless/wl3501.h
+++ b/drivers/net/wireless/wl3501.h
@@ -550,7 +550,7 @@ struct wl3501_80211_tx_plcp_hdr {
struct wl3501_80211_tx_hdr {
struct wl3501_80211_tx_plcp_hdr pclp_hdr;
struct ieee80211_hdr mac_hdr;
-} __packed;
+} __packed __aligned(2);

/*
Reserve the beginning Tx space for descriptor use.
--
2.29.2


2021-02-08 11:29:05

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH] wl3501: fix alignment constraints

Arnd Bergmann <[email protected]> wrote:

> From: Arnd Bergmann <[email protected]>
>
> struct wl3501_80211_tx_hdr contains a ieee80211_hdr structure, which is
> required to have at least two byte alignment, and this conflicts with
> the __packed attribute:
>
> wireless/wl3501.h:553:1: warning: alignment 1 of 'struct wl3501_80211_tx_hdr' is less than 2 [-Wpacked-not-aligned]
>
> Mark wl3501_80211_tx_hdr itself as having two-byte alignment to ensure the
> inner structure is properly aligned.
>
> Signed-off-by: Arnd Bergmann <[email protected]>

Patch applied to wireless-drivers-next.git, thanks.

fb1bc2ce3a55 wl3501: fix alignment constraints

--
https://patchwork.kernel.org/project/linux-wireless/patch/[email protected]/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches