kernel_samsung_a53x/drivers/net
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
..
appletalk
arcnet
bonding bonding: Fix out-of-bounds read in bond_option_arp_ip_targets_set() 2024-11-19 14:19:41 +01:00
caif
can can: kvaser_usb: fix return value for hif_usb_send_regout 2024-11-19 14:19:48 +01:00
dropdump
dsa net: dsa: mv88e6xxx: Correct check for empty list 2024-11-19 14:19:40 +01:00
ethernet mlxsw: spectrum_acl: Fix ACL scale regression and firmware errors 2024-11-23 23:20:07 +01:00
fddi
fjes
hamradio
hippi
hyperv hv_netvsc: Register VF in netvsc_probe if NET_DEVICE_REGISTER missed 2024-11-18 23:19:52 +01:00
ieee802154
ipa
ipvlan ipvlan: Dont Use skb->sk in ipvlan_process_v{4,6}_outbound 2024-11-19 12:27:11 +01:00
mdio
netdevsim
pcs
phy net: phy: micrel: add Microchip KSZ 9477 to the device table 2024-11-19 14:19:31 +01:00
plip
ppp ppp: reject claimed-as-LCP but actually malformed packets 2024-11-19 14:19:43 +01:00
slip
team
usb net: usb: qmi_wwan: add Telit FN912 compositions 2024-11-19 14:19:50 +01:00
vmxnet3
vxlan vxlan: Fix regression when dropping packets due to invalid src addresses 2024-11-19 14:19:00 +01:00
wan
wimax
wireguard wireguard: send: annotate intentional data race in checking empty queue 2024-11-19 14:19:45 +01:00
wireless wifi: ath11k: fix wrong handling of CCMP256 and GCMP ciphers 2024-11-23 23:20:07 +01:00
xen-netback xen-netback: properly sync TX responses 2024-11-18 12:13:30 +01:00
bareudp.c
dummy.c
eql.c
geneve.c geneve: fix header validation in geneve[6]_xmit_skb 2024-11-19 11:32:19 +01:00
gtp.c net: gtp: Fix Use-After-Free in gtp_dellink 2024-11-19 11:32:37 +01:00
ifb.c
Kconfig
LICENSE.SRC
loopback.c
macsec.c
macvlan.c
macvtap.c
Makefile
mdio.c
mii.c
net_failover.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tap.c tap: add missing verification for short frame 2024-11-19 14:19:53 +01:00
thunderbolt.c
tun.c tun: add missing verification for short frame 2024-11-19 14:19:53 +01:00
veth.c
virtio_net.c virtio_net: checksum offloading handling fix 2024-11-19 14:19:08 +01:00
vrf.c
vsockmon.c
xen-netfront.c