wifi: wil6210: wmi: Use __counted_by() in struct wmi_set_link_monitor_cmd and avoid...
authorGustavo A. R. Silva <gustavoars@kernel.org>
Wed, 27 Mar 2024 21:43:38 +0000 (15:43 -0600)
committerKalle Valo <quic_kvalo@quicinc.com>
Thu, 4 Apr 2024 10:12:20 +0000 (13:12 +0300)
commitcbb0697e0ded488b7fb001912474bf1dc1c982b4
tree28cd4c9319332a8161578aae953211b9cbe76838
parent34c34c242a1be24cb5da17fe2954c8c71caf815a
wifi: wil6210: wmi: Use __counted_by() in struct wmi_set_link_monitor_cmd and avoid -Wfamnae warning

Prepare for the coming implementation by GCC and Clang of the
__counted_by attribute. Flexible array members annotated with
__counted_by can have their accesses bounds-checked at run-time
via CONFIG_UBSAN_BOUNDS (for array indexing) and CONFIG_FORTIFY_SOURCE
(for strcpy/memcpy-family functions).

Also, -Wflex-array-member-not-at-end is coming in GCC-14, and we are
getting ready to enable it globally.

So, use the `DEFINE_FLEX()` helper for an on-stack definition of
a flexible structure where the size of the flexible-array member
is known at compile-time, and refactor the rest of the code,
accordingly.

So, with these changes, fix the following warning:
drivers/net/wireless/ath/wil6210/wmi.c:4018:49: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end]

Link: https://github.com/KSPP/linux/issues/202
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Reviewed-by: Jeff Johnson <quic_jjohnson@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://msgid.link/ZgSTCmdP+omePvWg@neat
drivers/net/wireless/ath/wil6210/wmi.c
drivers/net/wireless/ath/wil6210/wmi.h