kernel_samsung_a53x/drivers/net/wireless
Baochen Qiang e92274ba92 wifi: ath11k: fix wrong handling of CCMP256 and GCMP ciphers
[ Upstream commit d2b0ca38d362ebf16ca79cd7f309d5bb8b581deb ]

Currently for CCMP256, GCMP128 and GCMP256 ciphers, in ath11k_install_key()
IEEE80211_KEY_FLAG_GENERATE_IV_MGMT is not set. And in ath11k_mac_mgmt_tx_wmi()
a length of IEEE80211_CCMP_MIC_LEN is reserved for all ciphers.

This results in unexpected management frame drop in case either of above 3 ciphers
is used. The reason is, without IEEE80211_KEY_FLAG_GENERATE_IV_MGMT set, mac80211
will not generate CCMP/GCMP headers in frame for ath11k. Also MIC length reserved
is wrong. Such frame is dropped later by hardware:

ath11k_pci 0000:5a:00.0: mac tx mgmt frame, buf id 0
ath11k_pci 0000:5a:00.0: mgmt tx compl ev pdev_id 1, desc_id 0, status 1

From user point of view, we have observed very low throughput due to this issue:
action frames are all dropped so ADDBA response from DUT never reaches AP. AP
can not use aggregation thus throughput is low.

Fix this by setting IEEE80211_KEY_FLAG_GENERATE_IV_MGMT flag and by reserving proper
MIC length for those ciphers.

Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.30
Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1

Fixes: d5c65159f289 ("ath11k: driver for Qualcomm IEEE 802.11ax devices")
Reported-by: Yaroslav Isakov <yaroslav.isakov@gmail.com>
Tested-by: Yaroslav Isakov <yaroslav.isakov@gmail.com>
Closes: https://lore.kernel.org/all/CADS+iDX5=JtJr0apAtAQ02WWBxgOFEv8G063vuGYwDTC8AVZaw@mail.gmail.com
Signed-off-by: Baochen Qiang <quic_bqiang@quicinc.com>
Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://msgid.link/20240605014826.22498-1-quic_bqiang@quicinc.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-23 23:20:07 +01:00
..
admtek
ath wifi: ath11k: fix wrong handling of CCMP256 and GCMP ciphers 2024-11-23 23:20:07 +01:00
atmel
broadcom wifi: brcmsmac: LCN PHY code is used for BCM4313 2G-only device 2024-11-23 23:20:06 +01:00
cisco
cnss2
cnss_genl
cnss_prealloc
cnss_utils
intel wifi: iwlwifi: mvm: don't read past the mfuart notifcation 2024-11-19 14:19:00 +01:00
intersil
marvell wifi: mwl8k: initialize cmd->addr[] properly 2024-11-19 12:26:56 +01:00
mediatek wifi: mt76: replace skb_put with skb_put_zero 2024-10-04 20:09:30 -03:00
microchip wifi: wilc1000: fix ies_len type in connect path 2024-11-19 14:19:41 +01:00
qualcomm/qca6490 qcacld-3.0: Disable auto IRQ affinity feature 2024-11-17 17:44:53 +01:00
quantenna wireless: Remove redundant 'flush_workqueue()' calls 2024-11-19 08:44:44 +01:00
ralink wifi: rt2x00: restart beacon queue when hardware reset 2024-11-18 12:13:11 +01:00
realtek wifi: rtlwifi: rtl8192de: Fix 5 GHz TX power 2024-11-19 14:19:10 +01:00
rsi
scsc
st wireless: Remove redundant 'flush_workqueue()' calls 2024-11-19 08:44:44 +01:00
ti
zydas
Kconfig
mac80211_hwsim.c wifi: mac80211_hwsim: fix clang-specific fortify warning 2024-11-18 11:43:12 +01:00
mac80211_hwsim.h
Makefile
ray_cs.c
ray_cs.h
rayctl.h
rndis_wlan.c wireless: Remove redundant 'flush_workqueue()' calls 2024-11-19 08:44:44 +01:00
virt_wifi.c
wl3501.h
wl3501_cs.c