linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 1/2] ath11k: clear the keys properly via DISABLE_KEY
@ 2021-11-15 10:04 Sven Eckelmann
  2021-11-15 10:04 ` [PATCH v2 2/2] ath11k: reset RSN/WPA present state for open BSS Sven Eckelmann
  2021-11-17  7:32 ` [PATCH v2 1/2] ath11k: clear the keys properly via DISABLE_KEY Kalle Valo
  0 siblings, 2 replies; 3+ messages in thread
From: Sven Eckelmann @ 2021-11-15 10:04 UTC (permalink / raw)
  To: ath11k; +Cc: linux-wireless, Karthikeyan Kathirvel, Sven Eckelmann

From: Karthikeyan Kathirvel <kathirve@codeaurora.org>

DISABLE_KEY sets the key_len to 0, firmware will not delete the keys if
key_len is 0. Changing from security mode to open mode will cause mcast
to be still encrypted without vdev restart.

Set the proper key_len for DISABLE_KEY cmd to clear the keys in
firmware.

Tested-on: IPQ6018 hw1.0 AHB WLAN.HK.2.5.0.1-01100-QCAHKSWPL_SILICONZ-1

Fixes: d5c65159f289 ("ath11k: driver for Qualcomm IEEE 802.11ax devices")
Reported-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Karthikeyan Kathirvel <kathirve@codeaurora.org>
[sven@narfation.org: split into separate patches, clean up commit message]
Signed-off-by: Sven Eckelmann <sven@narfation.org>
---
v2:
* resubmit with the missing second patch

 drivers/net/wireless/ath/ath11k/mac.c | 4 +---
 drivers/net/wireless/ath/ath11k/wmi.c | 3 ++-
 2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/net/wireless/ath/ath11k/mac.c b/drivers/net/wireless/ath/ath11k/mac.c
index 1cc55602787b..cdee7545e876 100644
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -3316,9 +3316,7 @@ static int ath11k_install_key(struct ath11k_vif *arvif,
 		return 0;
 
 	if (cmd == DISABLE_KEY) {
-		/* TODO: Check if FW expects  value other than NONE for del */
-		/* arg.key_cipher = WMI_CIPHER_NONE; */
-		arg.key_len = 0;
+		arg.key_cipher = WMI_CIPHER_NONE;
 		arg.key_data = NULL;
 		goto install;
 	}
diff --git a/drivers/net/wireless/ath/ath11k/wmi.c b/drivers/net/wireless/ath/ath11k/wmi.c
index 5ae2ef4680d6..d97be60689be 100644
--- a/drivers/net/wireless/ath/ath11k/wmi.c
+++ b/drivers/net/wireless/ath/ath11k/wmi.c
@@ -1689,7 +1689,8 @@ int ath11k_wmi_vdev_install_key(struct ath11k *ar,
 	tlv = (struct wmi_tlv *)(skb->data + sizeof(*cmd));
 	tlv->header = FIELD_PREP(WMI_TLV_TAG, WMI_TAG_ARRAY_BYTE) |
 		      FIELD_PREP(WMI_TLV_LEN, key_len_aligned);
-	memcpy(tlv->value, (u8 *)arg->key_data, key_len_aligned);
+	if (arg->key_data)
+		memcpy(tlv->value, (u8 *)arg->key_data, key_len_aligned);
 
 	ret = ath11k_wmi_cmd_send(wmi, skb, WMI_VDEV_INSTALL_KEY_CMDID);
 	if (ret) {
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH v2 2/2] ath11k: reset RSN/WPA present state for open BSS
  2021-11-15 10:04 [PATCH v2 1/2] ath11k: clear the keys properly via DISABLE_KEY Sven Eckelmann
@ 2021-11-15 10:04 ` Sven Eckelmann
  2021-11-17  7:32 ` [PATCH v2 1/2] ath11k: clear the keys properly via DISABLE_KEY Kalle Valo
  1 sibling, 0 replies; 3+ messages in thread
From: Sven Eckelmann @ 2021-11-15 10:04 UTC (permalink / raw)
  To: ath11k
  Cc: linux-wireless, Karthikeyan Kathirvel, Venkateswara Naralasetty,
	Sven Eckelmann

From: Karthikeyan Kathirvel <kathirve@codeaurora.org>

The ath11k driver is caching the information about RSN/WPA IE in the
configured beacon template. The cached information is used during
associations to figure out whether 4-way PKT/2-way GTK peer flags need to
be set or not.

But the code never cleared the state when no such IE was found. This can
for example happen when moving from an WPA/RSN to an open setup. The
(seemingly connected) peer was then not able to communicate over the
link because the firmware assumed a different (encryption enabled) state
for the peer.

Tested-on: IPQ6018 hw1.0 AHB WLAN.HK.2.5.0.1-01100-QCAHKSWPL_SILICONZ-1

Fixes: 01e34233c645 ("ath11k: fix wmi peer flags in peer assoc command")
Cc: Venkateswara Naralasetty <vnaralas@codeaurora.org>
Reported-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Karthikeyan Kathirvel <kathirve@codeaurora.org>
[sven@narfation.org: split into separate patches, clean up commit message]
Signed-off-by: Sven Eckelmann <sven@narfation.org>
---
v2:
* add new patch to really fix the peer handling of the fw after PSK -> open
  switch

 drivers/net/wireless/ath/ath11k/mac.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/net/wireless/ath/ath11k/mac.c b/drivers/net/wireless/ath/ath11k/mac.c
index cdee7545e876..9ed7eb09bdb7 100644
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -1137,11 +1137,15 @@ static int ath11k_mac_setup_bcn_tmpl(struct ath11k_vif *arvif)
 
 	if (cfg80211_find_ie(WLAN_EID_RSN, ies, (skb_tail_pointer(bcn) - ies)))
 		arvif->rsnie_present = true;
+	else
+		arvif->rsnie_present = false;
 
 	if (cfg80211_find_vendor_ie(WLAN_OUI_MICROSOFT,
 				    WLAN_OUI_TYPE_MICROSOFT_WPA,
 				    ies, (skb_tail_pointer(bcn) - ies)))
 		arvif->wpaie_present = true;
+	else
+		arvif->wpaie_present = false;
 
 	ret = ath11k_wmi_bcn_tmpl(ar, arvif->vdev_id, &offs, bcn);
 
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v2 1/2] ath11k: clear the keys properly via DISABLE_KEY
  2021-11-15 10:04 [PATCH v2 1/2] ath11k: clear the keys properly via DISABLE_KEY Sven Eckelmann
  2021-11-15 10:04 ` [PATCH v2 2/2] ath11k: reset RSN/WPA present state for open BSS Sven Eckelmann
@ 2021-11-17  7:32 ` Kalle Valo
  1 sibling, 0 replies; 3+ messages in thread
From: Kalle Valo @ 2021-11-17  7:32 UTC (permalink / raw)
  To: Sven Eckelmann
  Cc: ath11k, linux-wireless, Karthikeyan Kathirvel, Sven Eckelmann

Sven Eckelmann <sven@narfation.org> wrote:

> DISABLE_KEY sets the key_len to 0, firmware will not delete the keys if
> key_len is 0. Changing from security mode to open mode will cause mcast
> to be still encrypted without vdev restart.
> 
> Set the proper key_len for DISABLE_KEY cmd to clear the keys in
> firmware.
> 
> Tested-on: IPQ6018 hw1.0 AHB WLAN.HK.2.5.0.1-01100-QCAHKSWPL_SILICONZ-1
> 
> Fixes: d5c65159f289 ("ath11k: driver for Qualcomm IEEE 802.11ax devices")
> Reported-by: Sven Eckelmann <sven@narfation.org>
> Signed-off-by: Karthikeyan Kathirvel <kathirve@codeaurora.org>
> [sven@narfation.org: split into separate patches, clean up commit message]
> Signed-off-by: Sven Eckelmann <sven@narfation.org>
> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>

2 patches applied to ath-next branch of ath.git, thanks.

436a4e886598 ath11k: clear the keys properly via DISABLE_KEY
64bc3aa02ae7 ath11k: reset RSN/WPA present state for open BSS

-- 
https://patchwork.kernel.org/project/linux-wireless/patch/20211115100441.33771-1-sven@narfation.org/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-11-17  7:33 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-15 10:04 [PATCH v2 1/2] ath11k: clear the keys properly via DISABLE_KEY Sven Eckelmann
2021-11-15 10:04 ` [PATCH v2 2/2] ath11k: reset RSN/WPA present state for open BSS Sven Eckelmann
2021-11-17  7:32 ` [PATCH v2 1/2] ath11k: clear the keys properly via DISABLE_KEY Kalle Valo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).