mirror of
https://github.com/Telecominfraproject/wlan-ap.git
synced 2025-12-20 10:51:27 +00:00
158 lines
5.8 KiB
Diff
158 lines
5.8 KiB
Diff
From bc96542f4926a609c70175094a3919fd95bb302e Mon Sep 17 00:00:00 2001
|
|
From: Hari Chandrakanthan <quic_haric@quicinc.com>
|
|
Date: Thu, 22 Sep 2022 10:49:20 +0530
|
|
Subject: [PATCH] ath12k : enhance peer create/delete log
|
|
|
|
print the peer count during peer create/delete
|
|
and during vdev delete.
|
|
|
|
This can help when we face issues related to peer count
|
|
and peer delete/vdev delete sequence.
|
|
|
|
Signed-off-by: Hari Chandrakanthan <quic_haric@quicinc.com>
|
|
---
|
|
drivers/net/wireless/ath/ath12k/mac.c | 25 ++++++++++++++-----------
|
|
drivers/net/wireless/ath/ath12k/peer.c | 5 +++--
|
|
drivers/net/wireless/ath/ath12k/wmi.c | 18 +++++++++++-------
|
|
3 files changed, 28 insertions(+), 20 deletions(-)
|
|
|
|
--- a/drivers/net/wireless/ath/ath12k/mac.c
|
|
+++ b/drivers/net/wireless/ath/ath12k/mac.c
|
|
@@ -888,6 +888,8 @@ void ath12k_mac_peer_cleanup_all(struct
|
|
|
|
ar->num_peers = 0;
|
|
ar->num_stations = 0;
|
|
+
|
|
+ ath12k_dbg(ar->ab, ATH12K_DBG_MAC, "ath12k mac peer cleanup done\n");
|
|
}
|
|
|
|
static int ath12k_mac_vdev_setup_sync(struct ath12k *ar)
|
|
@@ -4022,7 +4024,8 @@ static int ath12k_mac_vdev_delete(struct
|
|
time_left = wait_for_completion_timeout(&ar->vdev_delete_done,
|
|
ATH12K_VDEV_DELETE_TIMEOUT_HZ);
|
|
if (time_left == 0) {
|
|
- ath12k_warn(ar->ab, "Timeout in receiving vdev delete response\n");
|
|
+ ath12k_warn(ar->ab, "Timeout in receiving vdev delete response vdev_id : %d\n",
|
|
+ arvif->vdev_id);
|
|
ret = -ETIMEDOUT;
|
|
goto clean_up;
|
|
}
|
|
@@ -5356,8 +5359,8 @@ static int ath12k_mac_station_add(struct
|
|
goto free_rx_stats;
|
|
}
|
|
|
|
- ath12k_dbg(ab, ATH12K_DBG_MAC, "Added peer: %pM for VDEV: %d\n",
|
|
- sta->addr, arvif->vdev_id);
|
|
+ ath12k_dbg(ab, ATH12K_DBG_MAC, "Added peer: %pM for VDEV: %d num_stations : %d\n",
|
|
+ sta->addr, arvif->vdev_id, ar->num_stations);
|
|
|
|
if (ath12k_debugfs_is_extd_tx_stats_enabled(ar) && (!arsta->tx_stats)) {
|
|
arsta->tx_stats = kzalloc(sizeof(*arsta->tx_stats),
|
|
@@ -5469,18 +5472,18 @@ static int ath12k_mac_op_sta_state(struc
|
|
|
|
ret = ath12k_peer_delete(ar, arvif->vdev_id, sta->addr);
|
|
if (ret)
|
|
- ath12k_warn(ar->ab, "Failed to delete peer: %pM for VDEV: %d\n",
|
|
- sta->addr, arvif->vdev_id);
|
|
+ ath12k_warn(ar->ab, "Failed to delete peer: %pM for VDEV: %d num_peers : %d\n",
|
|
+ sta->addr, arvif->vdev_id, ar->num_peers);
|
|
else
|
|
- ath12k_dbg(ar->ab, ATH12K_DBG_MAC, "Removed peer: %pM for VDEV: %d\n",
|
|
- sta->addr, arvif->vdev_id);
|
|
+ ath12k_dbg(ar->ab, ATH12K_DBG_MAC, "Removed peer: %pM for VDEV: %d num_peers : %d\n",
|
|
+ sta->addr, arvif->vdev_id, ar->num_peers);
|
|
|
|
ath12k_mac_dec_num_stations(arvif, sta);
|
|
spin_lock_bh(&ar->ab->base_lock);
|
|
peer = ath12k_peer_find(ar->ab, arvif->vdev_id, sta->addr);
|
|
if (peer && peer->sta == sta) {
|
|
- ath12k_warn(ar->ab, "Found peer entry %pM n vdev %i after it was supposedly removed\n",
|
|
- vif->addr, arvif->vdev_id);
|
|
+ ath12k_warn(ar->ab, "Found peer entry %pM n vdev %d after it was supposedly removed"
|
|
+ " num_peers : %d\n", vif->addr, arvif->vdev_id, ar->num_peers);
|
|
peer->sta = NULL;
|
|
list_del(&peer->list);
|
|
kfree(peer);
|
|
@@ -8019,8 +8022,8 @@ static void ath12k_mac_op_remove_interfa
|
|
if (arvif->vdev_type == WMI_VDEV_TYPE_AP) {
|
|
ret = ath12k_peer_delete(ar, arvif->vdev_id, vif->addr);
|
|
if (ret)
|
|
- ath12k_warn(ab, "failed to submit AP self-peer removal on vdev %d: %d\n",
|
|
- arvif->vdev_id, ret);
|
|
+ ath12k_warn(ab, "failed to submit AP self-peer removal on vdev %d: %d"
|
|
+ " num_peer : %d\n", arvif->vdev_id, ret, ar->num_peers);
|
|
}
|
|
|
|
ret = ath12k_mac_vdev_delete(ar, vif);
|
|
--- a/drivers/net/wireless/ath/ath12k/peer.c
|
|
+++ b/drivers/net/wireless/ath/ath12k/peer.c
|
|
@@ -218,14 +218,15 @@ int ath12k_wait_for_peer_delete_done(str
|
|
|
|
ret = ath12k_wait_for_peer_deleted(ar, vdev_id, addr);
|
|
if (ret) {
|
|
- ath12k_warn(ar->ab, "failed wait for peer deleted");
|
|
+ ath12k_warn(ar->ab, "failed wait for peer deleted peer_addr : %pM\n", addr);
|
|
return ret;
|
|
}
|
|
|
|
time_left = wait_for_completion_timeout(&ar->peer_delete_done,
|
|
3 * HZ);
|
|
if (time_left == 0) {
|
|
- ath12k_warn(ar->ab, "Timeout in receiving peer delete response\n");
|
|
+ ath12k_warn(ar->ab, "Timeout in receiving peer delete response peer_addr : %pM\n",
|
|
+ addr);
|
|
return -ETIMEDOUT;
|
|
}
|
|
|
|
--- a/drivers/net/wireless/ath/ath12k/wmi.c
|
|
+++ b/drivers/net/wireless/ath/ath12k/wmi.c
|
|
@@ -868,7 +868,8 @@ int ath12k_wmi_vdev_delete(struct ath12k
|
|
dev_kfree_skb(skb);
|
|
}
|
|
|
|
- ath12k_dbg(ar->ab, ATH12K_DBG_WMI, "WMI vdev delete id %d\n", vdev_id);
|
|
+ ath12k_dbg(ar->ab, ATH12K_DBG_WMI, "WMI vdev delete id %d num_peers : %d\n",
|
|
+ vdev_id, ar->num_peers);
|
|
|
|
return ret;
|
|
}
|
|
@@ -920,7 +921,8 @@ int ath12k_wmi_vdev_down(struct ath12k *
|
|
|
|
ret = ath12k_wmi_cmd_send(wmi, skb, WMI_VDEV_DOWN_CMDID);
|
|
if (ret) {
|
|
- ath12k_warn(ar->ab, "failed to submit WMI_VDEV_DOWN cmd\n");
|
|
+ ath12k_warn(ar->ab, "failed to submit WMI_VDEV_DOWN cmd vdev id : %d\n",
|
|
+ vdev_id);
|
|
dev_kfree_skb(skb);
|
|
}
|
|
|
|
@@ -1131,8 +1133,8 @@ int ath12k_wmi_send_peer_create_cmd(stru
|
|
}
|
|
|
|
ath12k_dbg(ar->ab, ATH12K_DBG_WMI,
|
|
- "WMI peer create vdev_id %d peer_addr %pM\n",
|
|
- param->vdev_id, param->peer_addr);
|
|
+ "WMI peer create vdev_id %d peer_addr %pM num_peer : %d\n",
|
|
+ param->vdev_id, param->peer_addr, ar->num_peers);
|
|
|
|
return ret;
|
|
}
|
|
@@ -1157,12 +1159,14 @@ int ath12k_wmi_send_peer_delete_cmd(stru
|
|
cmd->vdev_id = cpu_to_le32(vdev_id);
|
|
|
|
ath12k_dbg(ar->ab, ATH12K_DBG_WMI,
|
|
- "WMI peer delete vdev_id %d peer_addr %pM\n",
|
|
- vdev_id, peer_addr);
|
|
+ "WMI peer delete vdev_id %d peer_addr %pM num_peer : %d\n",
|
|
+ vdev_id, peer_addr, ar->num_peers);
|
|
|
|
ret = ath12k_wmi_cmd_send(wmi, skb, WMI_PEER_DELETE_CMDID);
|
|
if (ret) {
|
|
- ath12k_warn(ar->ab, "failed to send WMI_PEER_DELETE cmd\n");
|
|
+ ath12k_warn(ar->ab, "failed to send WMI_PEER_DELETE cmd"
|
|
+ " peer_addr %pM num_peer : %d\n",
|
|
+ peer_addr, ar->num_peers);
|
|
dev_kfree_skb(skb);
|
|
}
|
|
|