Message ID | 20230516183442.536589-1-arnd@kernel.org (mailing list archive) |
---|---|
State | Awaiting Upstream |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [v2] wifi: b43: fix incorrect __packed annotation | expand |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Not a local patch |
Arnd Bergmann <arnd@kernel.org> wrote: > From: Arnd Bergmann <arnd@arndb.de> > > clang warns about an unpacked structure inside of a packed one: > > drivers/net/wireless/broadcom/b43/b43.h:654:4: error: field data within 'struct b43_iv' is less aligned than 'union (unnamed union at /home/arnd/arm-soc/drivers/net/wireless/broadcom/b43/b43.h:651:2)' and is usually due to 'struct b43_iv' being packed, which can lead to unaligned accesses [-Werror,-Wunaligned-access] > > The problem here is that the anonymous union has the default alignment > from its members, apparently because the original author mixed up the > placement of the __packed attribute by placing it next to the struct > member rather than the union definition. As the struct itself is > also marked as __packed, there is no need to mark its members, so just > move the annotation to the inner type instead. > > As Michael noted, the same problem is present in b43legacy, so > change both at the same time. > > Acked-by: Michael Büsch <m@bues.ch> > Reported-by: kernel test robot <lkp@intel.com> > Reviewed-by: Simon Horman <simon.horman@corigine.com> > Tested-by: Larry Finger <Larry.Finger@lwfinger.net> > Link: https://lore.kernel.org/oe-kbuild-all/202305160749.ay1HAoyP-lkp@intel.com/ > Signed-off-by: Arnd Bergmann <arnd@arndb.de> Patch applied to wireless.git, thanks. 212457ccbd60 wifi: b43: fix incorrect __packed annotation
diff --git a/drivers/net/wireless/broadcom/b43/b43.h b/drivers/net/wireless/broadcom/b43/b43.h index 9fc7c088a539..67b4bac048e5 100644 --- a/drivers/net/wireless/broadcom/b43/b43.h +++ b/drivers/net/wireless/broadcom/b43/b43.h @@ -651,7 +651,7 @@ struct b43_iv { union { __be16 d16; __be32 d32; - } data __packed; + } __packed data; } __packed; diff --git a/drivers/net/wireless/broadcom/b43legacy/b43legacy.h b/drivers/net/wireless/broadcom/b43legacy/b43legacy.h index 6b0cec467938..f49365d14619 100644 --- a/drivers/net/wireless/broadcom/b43legacy/b43legacy.h +++ b/drivers/net/wireless/broadcom/b43legacy/b43legacy.h @@ -379,7 +379,7 @@ struct b43legacy_iv { union { __be16 d16; __be32 d32; - } data __packed; + } __packed data; } __packed; #define B43legacy_PHYMODE(phytype) (1 << (phytype))