bwi: Fix clang 14 warning about possible unaligned access

On architectures with strict alignment requirements (e.g. arm), clang 14
warns about a packed struct which encloses a non-packed union:

In file included from sys/dev/bwi/bwimac.c:79:
sys/dev/bwi/if_bwivar.h:308:7: error: field iv_val within 'struct bwi_fw_iv' is less aligned than 'union (unnamed union at sys/dev/bwi/if_bwivar.h:305:2)' and is usually due to 'struct bwi_fw_iv' being packed, which can lead to unaligned accesses [-Werror,-Wunaligned-access]
	}			iv_val;
				^

It appears to help if you also add __packed to the inner union (i.e.
iv_val). No change to the layout is intended.

MFC after:	3 days
Differential Revision: https://reviews.freebsd.org/D34196
This commit is contained in:
Dimitry Andric 2022-02-07 21:59:46 +01:00
parent 6aa246e605
commit 09d0a0fbe8

View File

@ -305,7 +305,7 @@ struct bwi_fw_iv {
union {
uint32_t val32;
uint16_t val16;
} iv_val;
} __packed iv_val;
} __packed;
#define BWI_FW_IV_OFS_MASK __BITS(14, 0)