wifi: ath11k: mac: fix struct ieee80211_sband_iftype_data handling
authorKalle Valo <quic_kvalo@quicinc.com>
Wed, 27 Sep 2023 14:27:08 +0000 (17:27 +0300)
committerKalle Valo <quic_kvalo@quicinc.com>
Thu, 28 Sep 2023 15:15:36 +0000 (18:15 +0300)
commit9e61589ac3c2d23c528d3ffd44604d98553ea1cb
treee6957c83f485a60c3e46f1f38b95922c5c9e9ac3
parent4fd15bb705d3faa7e6adab2daba2e3af80d9b6bd
wifi: ath11k: mac: fix struct ieee80211_sband_iftype_data handling

Commit e8c1841278a7 ("wifi: cfg80211: annotate iftype_data pointer with
sparse") added sparse checks for struct ieee80211_sband_iftype_data handling
which immediately found an issue in ath11k:

drivers/net/wireless/ath/ath11k/mac.c:7952:22: warning: incorrect type in argument 1 (different address spaces)
drivers/net/wireless/ath/ath11k/mac.c:7952:22:    expected struct ieee80211_sta_he_cap const *he_cap
drivers/net/wireless/ath/ath11k/mac.c:7952:22:    got struct ieee80211_sta_he_cap const [noderef] __iftype_data *

The problem here is that we are accessing sband->iftype_data directly even
though we should use for_each_sband_iftype_data() or similar. Fortunately
there's ieee80211_get_he_iftype_cap_vif() which is just what we need here so
use it to get HE capabilities.

Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.23

Reported-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20230927142708.2897504-2-kvalo@kernel.org
drivers/net/wireless/ath/ath11k/mac.c