mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 14:23:38 +00:00
73 lines
2.8 KiB
Diff
73 lines
2.8 KiB
Diff
From c802b6d7815d7c3f556efea28d0b79ef57ebcfd4 Mon Sep 17 00:00:00 2001
|
|
From: Rameshkumar Sundaram <quic_ramess@quicinc.com>
|
|
Date: Mon, 25 Oct 2021 21:33:06 +0530
|
|
Subject: [PATCH] ath11k: Clear auth flag only for actual association in
|
|
security mode
|
|
|
|
AUTH flag is needed when peer assoc command is sent from host in
|
|
security mode for non-assoc cases. Firmware will handle AUTH flag
|
|
when client is associating as AUTH flag will be set after key exchange.
|
|
For internally provided peer assoc commands from host, there won't be
|
|
any key exchange, so AUTH flag is expected to be set in host.
|
|
|
|
Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.4.0.1-01838-QCAHKSWPL_SILICONZ-1
|
|
|
|
Co-developed-by: Lavanya Suresh <lavaks@codeaurora.org>
|
|
Signed-off-by: Lavanya Suresh <lavaks@codeaurora.org>
|
|
Signed-off-by: Rameshkumar Sundaram <quic_ramess@quicinc.com>
|
|
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
|
Link: https://lore.kernel.org/r/1635177786-20854-1-git-send-email-quic_ramess@quicinc.com
|
|
---
|
|
drivers/net/wireless/ath/ath11k/mac.c | 3 +++
|
|
drivers/net/wireless/ath/ath11k/wmi.c | 2 +-
|
|
drivers/net/wireless/ath/ath11k/wmi.h | 1 +
|
|
3 files changed, 5 insertions(+), 1 deletion(-)
|
|
|
|
--- a/drivers/net/wireless/ath/ath11k/mac.c
|
|
+++ b/drivers/net/wireless/ath/ath11k/mac.c
|
|
@@ -2500,6 +2500,7 @@ static void ath11k_bss_assoc(struct ieee
|
|
|
|
rcu_read_unlock();
|
|
|
|
+ peer_arg.is_assoc = true;
|
|
ret = ath11k_wmi_send_peer_assoc_cmd(ar, &peer_arg);
|
|
if (ret) {
|
|
ath11k_warn(ar->ab, "failed to run peer assoc for %pM vdev %i: %d\n",
|
|
@@ -3778,6 +3779,7 @@ static int ath11k_station_assoc(struct a
|
|
|
|
ath11k_peer_assoc_prepare(ar, vif, sta, &peer_arg, reassoc);
|
|
|
|
+ peer_arg.is_assoc = true;
|
|
ret = ath11k_wmi_send_peer_assoc_cmd(ar, &peer_arg);
|
|
if (ret) {
|
|
ath11k_warn(ar->ab, "failed to run peer assoc for STA %pM vdev %i: %d\n",
|
|
@@ -3989,6 +3991,7 @@ static void ath11k_sta_rc_update_wk(stru
|
|
ath11k_peer_assoc_prepare(ar, arvif->vif, sta,
|
|
&peer_arg, true);
|
|
|
|
+ peer_arg.is_assoc = false;
|
|
err = ath11k_wmi_send_peer_assoc_cmd(ar, &peer_arg);
|
|
if (err)
|
|
ath11k_warn(ar->ab, "failed to run peer assoc for STA %pM vdev %i: %d\n",
|
|
--- a/drivers/net/wireless/ath/ath11k/wmi.c
|
|
+++ b/drivers/net/wireless/ath/ath11k/wmi.c
|
|
@@ -1764,7 +1764,7 @@ ath11k_wmi_copy_peer_flags(struct wmi_pe
|
|
cmd->peer_flags |= WMI_PEER_AUTH;
|
|
if (param->need_ptk_4_way) {
|
|
cmd->peer_flags |= WMI_PEER_NEED_PTK_4_WAY;
|
|
- if (!hw_crypto_disabled)
|
|
+ if (!hw_crypto_disabled && param->is_assoc)
|
|
cmd->peer_flags &= ~WMI_PEER_AUTH;
|
|
}
|
|
if (param->need_gtk_2_way)
|
|
--- a/drivers/net/wireless/ath/ath11k/wmi.h
|
|
+++ b/drivers/net/wireless/ath/ath11k/wmi.h
|
|
@@ -3617,6 +3617,7 @@ struct peer_assoc_params {
|
|
u32 peer_he_tx_mcs_set[WMI_HOST_MAX_HE_RATE_SET];
|
|
bool twt_responder;
|
|
bool twt_requester;
|
|
+ bool is_assoc;
|
|
struct ath11k_ppe_threshold peer_ppet;
|
|
};
|
|
|