wifi: mt76: mt7996: Use DECLARE_FLEX_ARRAY() and fix -Warray-bounds warnings
Subsystems (2)
PATCH 1/1 wifi: mt76: mt7996: Use DECLARE_FLEX_ARRAY() and fix -Warray-bounds warnings
Transform zero-length arrays adm_stat and msdu_cnt into proper flexible-array members in anonymous union in struct mt7996_mcu_all_sta_info_event via the DECLARE_FLEX_ARRAY() helper; and fix multiple -Warray-bounds warnings:
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c:483:61: warning: array subscript <unknown> is outside array bounds of 'struct <anonymous>[0]' [-Warray-bounds=] drivers/net/wireless/mediatek/mt76/mt7996/mcu.c:490:58: warning: array subscript <unknown> is outside array bounds of 'struct <anonymous>[0]' [-Warray-bounds=] drivers/net/wireless/mediatek/mt76/mt7996/mcu.c:492:58: warning: array subscript <unknown> is outside array bounds of 'struct <anonymous>[0]' [-Warray-bounds=] drivers/net/wireless/mediatek/mt76/mt7996/mcu.c:469:61: warning: array subscript <unknown> is outside array bounds of 'struct <anonymous>[0]' [-Warray-bounds=] drivers/net/wireless/mediatek/mt76/mt7996/mcu.c:477:66: warning: array subscript <unknown> is outside array bounds of 'struct <anonymous>[0]' [-Warray-bounds=] drivers/net/wireless/mediatek/mt76/mt7996/mcu.c:479:66: warning: array subscript <unknown> is outside array bounds of 'struct <anonymous>[0]' [-Warray-bounds=]
This results in no differences in binary output, helps with the ongoing efforts to globally enable -Warray-bounds.
--- drivers/net/wireless/mediatek/mt76/mt7996/mcu.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
drivers/net/wireless/mediatek/mt76/mt7996/mcu.h +4 -4
@@ -163,19 +163,19 @@ struct mt7996_mcu_all_sta_info_event {u8 rsv3[2 ];union { -struct { +DECLARE_FLEX_ARRAY (struct {__le16 wlan_idx;u8 rsv[2 ];__le32 tx_bytes[IEEE80211_NUM_ACS ];__le32 rx_bytes[IEEE80211_NUM_ACS ]; - } adm_stat[0 ]; + }, adm_stat); -struct { +DECLARE_FLEX_ARRAY (struct {__le16 wlan_idx;u8 rsv[2 ];__le32 tx_msdu_cnt;__le32 rx_msdu_cnt; - } msdu_cnt[0 ]; + }, msdu_cnt); }; } __packed;
Signature · 1 line
2.34.1
Quoted 12 lines · Gustavo A. R. Silva
Transform zero-length arrays
adm_statandmsdu_cntinto proper flexible-array members in anonymous union instruct mt7996_mcu_all_sta_info_eventvia theDECLARE_FLEX_ARRAY()helper; and fix multiple -Warray-bounds warnings:
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c:483:61: warning: array subscript <unknown> is outside array bounds of 'struct <anonymous>[0]' [-Warray-bounds=]drivers/net/wireless/mediatek/mt76/mt7996/mcu.c:490:58: warning: array subscript <unknown> is outside array bounds of 'struct <anonymous>[0]' [-Warray-bounds=]drivers/net/wireless/mediatek/mt76/mt7996/mcu.c:492:58: warning: array subscript <unknown> is outside array bounds of 'struct <anonymous>[0]' [-Warray-bounds=]drivers/net/wireless/mediatek/mt76/mt7996/mcu.c:469:61: warning: array subscript <unknown> is outside array bounds of 'struct <anonymous>[0]' [-Warray-bounds=]drivers/net/wireless/mediatek/mt76/mt7996/mcu.c:477:66: warning: array subscript <unknown> is outside array bounds of 'struct <anonymous>[0]' [-Warray-bounds=]drivers/net/wireless/mediatek/mt76/mt7996/mcu.c:479:66: warning: array subscript <unknown> is outside array bounds of 'struct <anonymous>[0]' [-Warray-bounds=]
Quoted 4 lines
This results in no differences in binary output, helps with the ongoing efforts to globally enable -Warray-bounds.
Signed-off-by Gustavo A. R. Silva <[email protected]>
The syntax looks a little funny initially, but yeah, that's how we need to fix it for now.
Signature · 1 line
Kees Cook
Quoted 12 lines · Gustavo A. R. Silva
Transform zero-length arrays
adm_statandmsdu_cntinto proper flexible-array members in anonymous union instruct mt7996_mcu_all_sta_info_eventvia theDECLARE_FLEX_ARRAY()helper; and fix multiple -Warray-bounds warnings:
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c:483:61: warning: array subscript <unknown> is outside array bounds of 'struct <anonymous>[0]' [-Warray-bounds=]drivers/net/wireless/mediatek/mt76/mt7996/mcu.c:490:58: warning: array subscript <unknown> is outside array bounds of 'struct <anonymous>[0]' [-Warray-bounds=]drivers/net/wireless/mediatek/mt76/mt7996/mcu.c:492:58: warning: array subscript <unknown> is outside array bounds of 'struct <anonymous>[0]' [-Warray-bounds=]drivers/net/wireless/mediatek/mt76/mt7996/mcu.c:469:61: warning: array subscript <unknown> is outside array bounds of 'struct <anonymous>[0]' [-Warray-bounds=]drivers/net/wireless/mediatek/mt76/mt7996/mcu.c:477:66: warning: array subscript <unknown> is outside array bounds of 'struct <anonymous>[0]' [-Warray-bounds=]drivers/net/wireless/mediatek/mt76/mt7996/mcu.c:479:66: warning: array subscript <unknown> is outside array bounds of 'struct <anonymous>[0]' [-Warray-bounds=]
Quoted 4 lines
This results in no differences in binary output, helps with the ongoing efforts to globally enable -Warray-bounds.
Signed-off-by Gustavo A. R. Silva <[email protected]>
*thread ping*
Can wireless folks please pick this patch up?
-Kees
Quoted 35 lines
--- drivers/net/wireless/mediatek/mt76/mt7996/mcu.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)drivers/net/wireless/mediatek/mt76/mt7996/mcu.h +4
-4@@ -163,19 +163,19 @@ struct mt7996_mcu_all_sta_info_event {u8 rsv3[2 ];union { -struct { +DECLARE_FLEX_ARRAY (struct {__le16 wlan_idx;u8 rsv[2 ];__le32 tx_bytes[IEEE80211_NUM_ACS ];__le32 rx_bytes[IEEE80211_NUM_ACS ]; - } adm_stat[0 ]; + }, adm_stat); -struct { +DECLARE_FLEX_ARRAY (struct {__le16 wlan_idx;u8 rsv[2 ];__le32 tx_msdu_cnt;__le32 rx_msdu_cnt; - } msdu_cnt[0 ]; + }, msdu_cnt); }; } __packed;Signature · 1 line
2.34.1
Signature · 1 line
Kees Cook
Quoted 26 lines · Kees Cook
Quoted 24 lines · Gustavo A. R. Silva
Transform zero-length arrays
adm_statandmsdu_cntinto proper flexible-array members in anonymous union instruct mt7996_mcu_all_sta_info_eventvia theDECLARE_FLEX_ARRAY()helper; and fix multiple -Warray-bounds warnings:
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c:483:61: warning:
array subscript <unknown> is outside array bounds of 'struct <anonymous>[0]' [-Warray-bounds=]drivers/net/wireless/mediatek/mt76/mt7996/mcu.c:490:58: warning:
array subscript <unknown> is outside array bounds of 'struct <anonymous>[0]' [-Warray-bounds=]drivers/net/wireless/mediatek/mt76/mt7996/mcu.c:492:58: warning:
array subscript <unknown> is outside array bounds of 'struct <anonymous>[0]' [-Warray-bounds=]drivers/net/wireless/mediatek/mt76/mt7996/mcu.c:469:61: warning:
array subscript <unknown> is outside array bounds of 'struct <anonymous>[0]' [-Warray-bounds=]drivers/net/wireless/mediatek/mt76/mt7996/mcu.c:477:66: warning:
array subscript <unknown> is outside array bounds of 'struct <anonymous>[0]' [-Warray-bounds=]drivers/net/wireless/mediatek/mt76/mt7996/mcu.c:479:66: warning:
array subscript <unknown> is outside array bounds of 'struct <anonymous>[0]' [-Warray-bounds=]
Quoted 8 lines
Quoted 4 lines
This results in no differences in binary output, helps with the ongoing efforts to globally enable -Warray-bounds.
Signed-off-by Gustavo A. R. Silva <[email protected]>*thread ping*
Can wireless folks please pick this patch up?
Ok, I assigned this to me on patchwork now. Felix, please let me know if you prefer to take this to your tree instead.
Signature · 3 lines
https://patchwork.kernel.org/project/linux-wireless/list/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
Quoted 12 lines · Gustavo A. R. Silva
Transform zero-length arrays
adm_statandmsdu_cntinto proper flexible-array members in anonymous union instruct mt7996_mcu_all_sta_info_eventvia theDECLARE_FLEX_ARRAY()helper; and fix multiple -Warray-bounds warnings:
drivers/net/wireless/mediatek/mt76/mt7996/mcu.c:483:61: warning: array subscript <unknown> is outside array bounds of 'struct <anonymous>[0]' [-Warray-bounds=]drivers/net/wireless/mediatek/mt76/mt7996/mcu.c:490:58: warning: array subscript <unknown> is outside array bounds of 'struct <anonymous>[0]' [-Warray-bounds=]drivers/net/wireless/mediatek/mt76/mt7996/mcu.c:492:58: warning: array subscript <unknown> is outside array bounds of 'struct <anonymous>[0]' [-Warray-bounds=]drivers/net/wireless/mediatek/mt76/mt7996/mcu.c:469:61: warning: array subscript <unknown> is outside array bounds of 'struct <anonymous>[0]' [-Warray-bounds=]drivers/net/wireless/mediatek/mt76/mt7996/mcu.c:477:66: warning: array subscript <unknown> is outside array bounds of 'struct <anonymous>[0]' [-Warray-bounds=]drivers/net/wireless/mediatek/mt76/mt7996/mcu.c:479:66: warning: array subscript <unknown> is outside array bounds of 'struct <anonymous>[0]' [-Warray-bounds=]
Quoted 5 lines
This results in no differences in binary output, helps with the ongoing efforts to globally enable -Warray-bounds.
Signed-off-by Gustavo A. R. Silva <[email protected]>Reviewed-by Kees Cook <[email protected]>
Fails to apply, please rebase on top of wireless-next.
Recorded preimage for 'drivers/net/wireless/mediatek/mt76/mt7996/mcu.h'
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Applying: wifi: mt76: mt7996: Use DECLARE_FLEX_ARRAY() and fix -Warray-bounds warnings Using index info to reconstruct a base tree...
M drivers/net/wireless/mediatek/mt76/mt7996/mcu.h
Falling back to patching base and 3-way merge...
Auto-merging drivers/net/wireless/mediatek/mt76/mt7996/mcu.h
CONFLICT (content): Merge conflict in drivers/net/wireless/mediatek/mt76/mt7996/mcu.h Patch failed at 0001 wifi: mt76: mt7996: Use DECLARE_FLEX_ARRAY() and fix -Warray-bounds warnings
Patch set to Changes Requested.
Signature · 3 lines
https://patchwork.kernel.org/project/linux-wireless/patch/ZVaCNAohuieMmdq9@work/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches