Centos-kernel-stream-9/drivers/net/wireless/virtual
Jose Ignacio Tornos Martinez e78c52044f wifi: radiotap: Avoid -Wflex-array-member-not-at-end warnings
JIRA: https://issues.redhat.com/browse/RHEL-67113

commit 57be3d3562ca4aa62b8047bc681028cc402af8ce
Author: Gustavo A. R. Silva <gustavoars@kernel.org>
Date:   Fri Oct 4 14:14:44 2024 -0600

    wifi: radiotap: Avoid -Wflex-array-member-not-at-end warnings
    
    -Wflex-array-member-not-at-end was introduced in GCC-14, and we are
    getting ready to enable it, globally.
    
    So, in order to avoid ending up with a flexible-array member in the
    middle of multiple other structs, we use the `__struct_group()`
    helper to create a new tagged `struct ieee80211_radiotap_header_fixed`.
    This structure groups together all the members of the flexible
    `struct ieee80211_radiotap_header` except the flexible array.
    
    As a result, the array is effectively separated from the rest of the
    members without modifying the memory layout of the flexible structure.
    We then change the type of the middle struct members currently causing
    trouble from `struct ieee80211_radiotap_header` to `struct
    ieee80211_radiotap_header_fixed`.
    
    We also want to ensure that in case new members need to be added to the
    flexible structure, they are always included within the newly created
    tagged struct. For this, we use `static_assert()`. This ensures that the
    memory layout for both the flexible structure and the new tagged struct
    is the same after any changes.
    
    This approach avoids having to implement `struct ieee80211_radiotap_header_fixed`
    as a completely separate structure, thus preventing having to maintain
    two independent but basically identical structures, closing the door
    to potential bugs in the future.
    
    So, with these changes, fix the following warnings:
    drivers/net/wireless/ath/wil6210/txrx.c:309:50: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end]
    drivers/net/wireless/intel/ipw2x00/ipw2100.c:2521:50: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end]
    drivers/net/wireless/intel/ipw2x00/ipw2200.h:1146:42: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end]
    drivers/net/wireless/intel/ipw2x00/libipw.h:595:36: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end]
    drivers/net/wireless/marvell/libertas/radiotap.h:34:42: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end]
    drivers/net/wireless/marvell/libertas/radiotap.h:5:42: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end]
    drivers/net/wireless/microchip/wilc1000/mon.c:10:42: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end]
    drivers/net/wireless/microchip/wilc1000/mon.c:15:42: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end]
    drivers/net/wireless/virtual/mac80211_hwsim.c:758:42: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end]
    drivers/net/wireless/virtual/mac80211_hwsim.c:767:42: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end]
    
    Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
    Link: https://patch.msgid.link/ZwBMtBZKcrzwU7l4@kspp
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
2024-11-22 10:58:18 +01:00
..
Kconfig
Makefile
mac80211_hwsim.c wifi: radiotap: Avoid -Wflex-array-member-not-at-end warnings 2024-11-22 10:58:18 +01:00
mac80211_hwsim.h wifi: mac80211_hwsim: add support for multi-radio wiphy 2024-10-29 08:18:28 +01:00
virt_wifi.c Merge: Wireless core and drivers rebase to v6.11 2024-11-15 13:27:52 +00:00