diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2022-02-07 20:59:46 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2022-02-13 13:35:58 +0000 |
commit | 09d0a0fbe859e3fc7bbff0cf48c389b5e55b9e00 (patch) | |
tree | 358e14ac159c284dbc4f82cbbef58f3475afab2f /sys/dev/bwi | |
parent | 6aa246e605b9528b23aaedf4b051b4672fb28829 (diff) | |
download | src-09d0a0fbe859e3fc7bbff0cf48c389b5e55b9e00.tar.gz src-09d0a0fbe859e3fc7bbff0cf48c389b5e55b9e00.zip |
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
Diffstat (limited to 'sys/dev/bwi')
-rw-r--r-- | sys/dev/bwi/if_bwivar.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/dev/bwi/if_bwivar.h b/sys/dev/bwi/if_bwivar.h index 90b4aeab6d26..9961cfca9193 100644 --- a/sys/dev/bwi/if_bwivar.h +++ b/sys/dev/bwi/if_bwivar.h @@ -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) |