Page MenuHomeFreeBSD

bwi: Fix clang 14 warning about possible unaligned access
ClosedPublic

Authored by dim on Feb 7 2022, 9:01 PM.
Tags
None
Referenced Files
F142442872: D34196.id102474.diff
Tue, Jan 20, 12:22 AM
F142423027: D34196.id102712.diff
Mon, Jan 19, 8:28 PM
Unknown Object (File)
Sun, Jan 18, 2:42 AM
Unknown Object (File)
Sat, Jan 17, 9:31 PM
Unknown Object (File)
Fri, Jan 2, 9:07 AM
Unknown Object (File)
Dec 15 2025, 6:09 AM
Unknown Object (File)
Dec 6 2025, 10:25 PM
Unknown Object (File)
Nov 20 2025, 10:58 PM
Subscribers
None

Details

Summary

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.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 44326
Build 41214: arc lint + arc unit