From bc96542f4926a609c70175094a3919fd95bb302e Mon Sep 17 00:00:00 2001 From: Hari Chandrakanthan 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 --- 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); }