2021-10-26 19:49:40

by Sven Eckelmann

[permalink] [raw]
Subject: [PATCH] ath11k: clear the keys properly when DISABLE_KEY

From: Karthikeyan Kathirvel <[email protected]>

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 <[email protected]>
Signed-off-by: Karthikeyan Kathirvel <[email protected]>
[[email protected]: Drop chunks which are for NSS and other parts QCA
didn't upstream]
Signed-off-by: Sven Eckelmann <[email protected]>
---
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


2021-10-27 05:08:21

by Sven Eckelmann

[permalink] [raw]
Subject: Re: [PATCH] ath11k: clear the keys properly when DISABLE_KEY

On Tuesday, 26 October 2021 17:54:46 CEST Sven Eckelmann wrote:
> Tested-on: IPQ6018 hw1.0 AHB WLAN.HK.2.5.0.1-01100-QCAHKSWPL_SILICONZ-1

I would like to retract this Tested-on. My test caused another problem which
resulted in a complete shutdown of the vdev. After fixing this problem, it
turned out that this change didn't fix anything (as far as I can see) on this
firmware version.

Kind regards,
Sven


Attachments:
signature.asc (849.00 B)
This is a digitally signed message part.

2021-10-27 16:32:15

by Sven Eckelmann

[permalink] [raw]
Subject: Re: [PATCH] ath11k: clear the keys properly when DISABLE_KEY

On Tuesday, 26 October 2021 17:54:46 CEST Sven Eckelmann wrote:
> Tested-on: IPQ6018 hw1.0 AHB WLAN.HK.2.5.0.1-01100-QCAHKSWPL_SILICONZ-1

I would like to retract this Tested-on. My test caused another problem which
resulted in a complete shutdown of the vdev. After fixing this problem, it
turned out that this change didn't fix anything (as far as I can see) on this
firmware version.

Kind regards,
Sven


2021-10-28 12:39:10

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH] ath11k: clear the keys properly when DISABLE_KEY

Sven Eckelmann <[email protected]> writes:

> On Tuesday, 26 October 2021 17:54:46 CEST Sven Eckelmann wrote:
>> Tested-on: IPQ6018 hw1.0 AHB WLAN.HK.2.5.0.1-01100-QCAHKSWPL_SILICONZ-1
>
> I would like to retract this Tested-on. My test caused another problem which
> resulted in a complete shutdown of the vdev. After fixing this problem, it
> turned out that this change didn't fix anything (as far as I can see) on this
> firmware version.

But it doesn't either break anything either, right? So in that respect I
would like to keep the Tested-on tag in the commit log to document how
it was tested.

Though I'm not sure what I do now, do you think I should the patch still
or should I drop it?

--
https://patchwork.kernel.org/project/linux-wireless/list/

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

2021-10-28 12:43:43

by Sven Eckelmann

[permalink] [raw]
Subject: Re: [PATCH] ath11k: clear the keys properly when DISABLE_KEY

On Thursday, 28 October 2021 14:38:27 CEST Kalle Valo wrote:
[...]
> But it doesn't either break anything either, right? So in that respect I
> would like to keep the Tested-on tag in the commit log to document how
> it was tested.
>
> Though I'm not sure what I do now, do you think I should the patch still
> or should I drop it?

It seems like QCA wanted to have a look again at the problem. So I would
suggest to drop it or mark it as "Changes Requested".

I cannot make any statements about whether it actually clears anything
in the firmware because I neither have documentation nor source code of
it. So only persons which have more knowledge about it can work on this
problem.

Kind regards,
Sven


Attachments:
signature.asc (849.00 B)
This is a digitally signed message part.

2021-11-01 12:54:25

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH] ath11k: clear the keys properly when DISABLE_KEY

Sven Eckelmann <[email protected]> writes:

> On Thursday, 28 October 2021 14:38:27 CEST Kalle Valo wrote:
> [...]
>> But it doesn't either break anything either, right? So in that respect I
>> would like to keep the Tested-on tag in the commit log to document how
>> it was tested.
>>
>> Though I'm not sure what I do now, do you think I should the patch still
>> or should I drop it?
>
> It seems like QCA wanted to have a look again at the problem. So I would
> suggest to drop it or mark it as "Changes Requested".

Ok, thanks. I see that someone already marked it as Rejected in
patchwork, and I don't think it was me :)

> I cannot make any statements about whether it actually clears anything
> in the firmware because I neither have documentation nor source code of
> it. So only persons which have more knowledge about it can work on this
> problem.

Can someone from QCA comment?

--
https://patchwork.kernel.org/project/linux-wireless/list/

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