Compare commits

...

1 Commits

Author SHA1 Message Date
Arif Alam
60a714f15d ath11k: improve peer deletion timeout error handling and fix memory leak
Signed-off-by: Arif Alam <arif.alam@netexperience.com>
2025-09-04 01:13:04 -04:00
2 changed files with 64 additions and 0 deletions

View File

@@ -0,0 +1,10 @@
--- a/drivers/net/wireless/ath/ath11k/peer.c
+++ b/drivers/net/wireless/ath/ath11k/peer.c
@@ -902,6 +902,7 @@ int ath11k_peer_create(struct ath11k *ar
if (vdev_id == param->vdev_id)
return -EINVAL;
+ ath11k_dp_peer_cleanup(ar, vdev_id, param->peer_addr);
ath11k_peer_delete(ar, vdev_id, param->peer_addr);
}

View File

@@ -0,0 +1,54 @@
From f211976a35c898f39d5a2602dd2a076a7b7cebd2 Mon Sep 17 00:00:00 2001
From: Arif Alam <arif.alam@netexperience.com>
Date: Tue, 2 Sep 2025 20:07:06 -0400
Subject: [PATCH] ath11k: improve peer deletion timeout and error handling
Signed-off-by: Arif Alam <arif.alam@netexperience.com>
---
drivers/net/wireless/ath/ath11k/peer.c | 9 ++++++---
drivers/net/wireless/ath/ath11k/peer.h | 2 ++
2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/drivers/net/wireless/ath/ath11k/peer.c b/drivers/net/wireless/ath/ath11k/peer.c
index 1907067..d5dbf40 100644
--- a/drivers/net/wireless/ath/ath11k/peer.c
+++ b/drivers/net/wireless/ath/ath11k/peer.c
@@ -771,7 +771,7 @@ int ath11k_wait_for_peer_delete_done(struct ath11k *ar, u32 vdev_id,
}
time_left = wait_for_completion_timeout(&ar->peer_delete_done,
- 3 * HZ);
+ msecs_to_jiffies(ATH11K_PEER_DELETE_MSG_TIMEOUT_MS));
if (time_left == 0) {
ath11k_warn(ar->ab, "Timeout in receiving peer delete response\n");
return -ETIMEDOUT;
@@ -857,8 +857,11 @@ int ath11k_peer_delete(struct ath11k *ar, u32 vdev_id, u8 *addr)
}
ret = ath11k_wait_for_peer_delete_done(ar, vdev_id, addr);
- if (ret)
- return ret;
+ if (ret) {
+ ath11k_warn(ar->ab,
+ "failed wait for peer %pM delete done id %d ret %d\n",
+ addr, vdev_id, ret);
+ }
ATH11K_MEMORY_STATS_DEC(ar->ab, per_peer_object,
sizeof(struct ath11k_peer));
diff --git a/drivers/net/wireless/ath/ath11k/peer.h b/drivers/net/wireless/ath/ath11k/peer.h
index c1a6464..ca20627 100644
--- a/drivers/net/wireless/ath/ath11k/peer.h
+++ b/drivers/net/wireless/ath/ath11k/peer.h
@@ -6,6 +6,8 @@
#ifndef ATH11K_PEER_H
#define ATH11K_PEER_H
+#define ATH11K_PEER_DELETE_MSG_TIMEOUT_MS 100
+
struct ppdu_user_delayba {
u8 reserved0;
u16 sw_peer_id;
--
2.50.1