mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-23 23:42:43 +00:00
85 lines
2.5 KiB
Diff
85 lines
2.5 KiB
Diff
|
From 695df2f417d25202bdac9cde3c82d2acb6492b4d Mon Sep 17 00:00:00 2001
|
||
|
From: Arnd Bergmann <arnd@arndb.de>
|
||
|
Date: Fri, 5 May 2023 16:11:25 +0300
|
||
|
Subject: [PATCH] wifi: ath: work around false-positive stringop-overread
|
||
|
warning
|
||
|
|
||
|
In a rare arm64 randconfig build, I got multiple warnings for ath11k
|
||
|
and ath12k:
|
||
|
|
||
|
In function 'ath11k_peer_assoc_h_ht',
|
||
|
inlined from 'ath11k_peer_assoc_prepare' at drivers/net/wireless/ath/ath11k/mac.c:2665:2:
|
||
|
drivers/net/wireless/ath/ath11k/mac.c:1709:13: error: 'ath11k_peer_assoc_h_ht_masked' reading 10 bytes from a region of size 0 [-Werror=stringop-overread]
|
||
|
1709 | if (ath11k_peer_assoc_h_ht_masked(ht_mcs_mask))
|
||
|
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
|
|
||
|
This happens whenever gcc-13 fails to inline one of the functions
|
||
|
that take a fixed-length array argument but gets passed a pointer.
|
||
|
|
||
|
Change these functions to all take a regular pointer argument
|
||
|
instead.
|
||
|
|
||
|
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
|
||
|
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
|
||
|
Link: https://lore.kernel.org/r/20230417205447.1800912-1-arnd@kernel.org
|
||
|
---
|
||
|
drivers/net/wireless/ath/ath11k/mac.c | 12 ++++++------
|
||
|
1 file changed, 6 insertions(+), 6 deletions(-)
|
||
|
|
||
|
--- a/drivers/net/wireless/ath/ath11k/mac.c
|
||
|
+++ b/drivers/net/wireless/ath/ath11k/mac.c
|
||
|
@@ -433,7 +433,7 @@ u8 ath11k_mac_bitrate_to_idx(const struc
|
||
|
}
|
||
|
|
||
|
static u32
|
||
|
-ath11k_mac_max_ht_nss(const u8 ht_mcs_mask[IEEE80211_HT_MCS_MASK_LEN])
|
||
|
+ath11k_mac_max_ht_nss(const u8 *ht_mcs_mask)
|
||
|
{
|
||
|
int nss;
|
||
|
|
||
|
@@ -445,7 +445,7 @@ ath11k_mac_max_ht_nss(const u8 ht_mcs_ma
|
||
|
}
|
||
|
|
||
|
static u32
|
||
|
-ath11k_mac_max_vht_nss(const u16 vht_mcs_mask[NL80211_VHT_NSS_MAX])
|
||
|
+ath11k_mac_max_vht_nss(const u16 *vht_mcs_mask)
|
||
|
{
|
||
|
int nss;
|
||
|
|
||
|
@@ -457,7 +457,7 @@ ath11k_mac_max_vht_nss(const u16 vht_mcs
|
||
|
}
|
||
|
|
||
|
static u32
|
||
|
-ath11k_mac_max_he_nss(const u16 he_mcs_mask[NL80211_HE_NSS_MAX])
|
||
|
+ath11k_mac_max_he_nss(const u16 *he_mcs_mask)
|
||
|
{
|
||
|
int nss;
|
||
|
|
||
|
@@ -1658,7 +1658,7 @@ static void ath11k_peer_assoc_h_rates(st
|
||
|
}
|
||
|
|
||
|
static bool
|
||
|
-ath11k_peer_assoc_h_ht_masked(const u8 ht_mcs_mask[IEEE80211_HT_MCS_MASK_LEN])
|
||
|
+ath11k_peer_assoc_h_ht_masked(const u8 *ht_mcs_mask)
|
||
|
{
|
||
|
int nss;
|
||
|
|
||
|
@@ -1670,7 +1670,7 @@ ath11k_peer_assoc_h_ht_masked(const u8 h
|
||
|
}
|
||
|
|
||
|
static bool
|
||
|
-ath11k_peer_assoc_h_vht_masked(const u16 vht_mcs_mask[])
|
||
|
+ath11k_peer_assoc_h_vht_masked(const u16 *vht_mcs_mask)
|
||
|
{
|
||
|
int nss;
|
||
|
|
||
|
@@ -2065,7 +2065,7 @@ static u16 ath11k_peer_assoc_h_he_limit(
|
||
|
}
|
||
|
|
||
|
static bool
|
||
|
-ath11k_peer_assoc_h_he_masked(const u16 he_mcs_mask[NL80211_HE_NSS_MAX])
|
||
|
+ath11k_peer_assoc_h_he_masked(const u16 *he_mcs_mask)
|
||
|
{
|
||
|
int nss;
|
||
|
|