From 52393e2ae12f18fb1a60578c24c46ebab292ddb6 Mon Sep 17 00:00:00 2001 From: Rameshkumar Sundaram Date: Mon, 28 Mar 2022 13:21:04 +0530 Subject: [PATCH] ath11k: Revert: clear the keys properly when DISABLE_KEY MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reverting the Upstream clear key change added as a part of 436a4e886598 ("ath11k: clear the keys properly when DISABLE_KEY") This change exposed a race in WLAN Firmware where target asserts are seen frequently due FW not synchronizing ath11k host’s clear key commands(CIPHER changes to NONE) with frames in TX queue. Hence reverting this change untill FW fixes to synchronize ath11k host’s clear key command are available. Signed-off-by: Rameshkumar Sundaram --- drivers/net/wireless/ath/ath11k/mac.c | 4 +++- drivers/net/wireless/ath/ath11k/wmi.c | 3 +-- 2 files changed, 4 insertions(+), 3 deletions(-) --- a/drivers/net/wireless/ath/ath11k/mac.c +++ b/drivers/net/wireless/ath/ath11k/mac.c @@ -4220,7 +4220,9 @@ static int ath11k_install_key(struct ath return 0; if (cmd == DISABLE_KEY) { - arg.key_cipher = WMI_CIPHER_NONE; + /* TODO: Check if FW expects value other than NONE for del */ + /* arg.key_cipher = WMI_CIPHER_NONE; */ + arg.key_len = 0; arg.key_data = NULL; goto install; } --- a/drivers/net/wireless/ath/ath11k/wmi.c +++ b/drivers/net/wireless/ath/ath11k/wmi.c @@ -1854,8 +1854,7 @@ int ath11k_wmi_vdev_install_key(struct a 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); - if (arg->key_data) - memcpy(tlv->value, (u8 *)arg->key_data, key_len_aligned); + memcpy(tlv->value, (u8 *)arg->key_data, key_len_aligned); ret = ath11k_wmi_cmd_send(wmi, skb, WMI_VDEV_INSTALL_KEY_CMDID); if (ret) {