wifi: wil6210: cfg80211: Use __counted_by() in struct wmi_start_scan_cmd and avoid...
authorGustavo A. R. Silva <gustavoars@kernel.org>
Wed, 27 Mar 2024 21:30:36 +0000 (15:30 -0600)
committerKalle Valo <quic_kvalo@quicinc.com>
Thu, 4 Apr 2024 10:11:27 +0000 (13:11 +0300)
commit34c34c242a1be24cb5da17fe2954c8c71caf815a
treef984846b7471cfdb7c4cad37c88e1f4e4ccf3f46
parent024c4ab0415f3ab2cbf9a3f3685c7050056d453b
wifi: wil6210: cfg80211: Use __counted_by() in struct wmi_start_scan_cmd and avoid some -Wfamnae warnings

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/cfg80211.c:896:43: 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/ZgSP/CMSVfr68R2u@neat
drivers/net/wireless/ath/wil6210/cfg80211.c
drivers/net/wireless/ath/wil6210/wmi.h