lkml.org 
[lkml]   [2020]   [Nov]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.9 071/391] ath10k: fix retry packets update in station dump
    Date
    From: Venkateswara Naralasetty <vnaralas@codeaurora.org>

    [ Upstream commit 67b927f9820847d30e97510b2f00cd142b9559b6 ]

    When tx status enabled, retry count is updated from tx completion status.
    which is not working as expected due to firmware limitation where
    firmware can not provide per MSDU rate statistics from tx completion
    status. Due to this tx retry count is always 0 in station dump.

    Fix this issue by updating the retry packet count from per peer
    statistics. This patch will not break on SDIO devices since, this retry
    count is already updating from peer statistics for SDIO devices.

    Tested-on: QCA9984 PCI 10.4-3.6-00104
    Tested-on: QCA9882 PCI 10.2.4-1.0-00047

    Signed-off-by: Venkateswara Naralasetty <vnaralas@codeaurora.org>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/1591856446-26977-1-git-send-email-vnaralas@codeaurora.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/wireless/ath/ath10k/htt_rx.c | 8 +++++---
    drivers/net/wireless/ath/ath10k/mac.c | 5 +++--
    2 files changed, 8 insertions(+), 5 deletions(-)

    diff --git a/drivers/net/wireless/ath/ath10k/htt_rx.c b/drivers/net/wireless/ath/ath10k/htt_rx.c
    index 215ade6faf328..69ad4ca1a87c1 100644
    --- a/drivers/net/wireless/ath/ath10k/htt_rx.c
    +++ b/drivers/net/wireless/ath/ath10k/htt_rx.c
    @@ -3583,12 +3583,14 @@ ath10k_update_per_peer_tx_stats(struct ath10k *ar,
    }

    if (ar->htt.disable_tx_comp) {
    - arsta->tx_retries += peer_stats->retry_pkts;
    arsta->tx_failed += peer_stats->failed_pkts;
    - ath10k_dbg(ar, ATH10K_DBG_HTT, "htt tx retries %d tx failed %d\n",
    - arsta->tx_retries, arsta->tx_failed);
    + ath10k_dbg(ar, ATH10K_DBG_HTT, "tx failed %d\n",
    + arsta->tx_failed);
    }

    + arsta->tx_retries += peer_stats->retry_pkts;
    + ath10k_dbg(ar, ATH10K_DBG_HTT, "htt tx retries %d", arsta->tx_retries);
    +
    if (ath10k_debug_is_extd_tx_stats_enabled(ar))
    ath10k_accumulate_per_peer_tx_stats(ar, arsta, peer_stats,
    rate_idx);
    diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
    index 2177e9d92bdff..03c7edf05a1d1 100644
    --- a/drivers/net/wireless/ath/ath10k/mac.c
    +++ b/drivers/net/wireless/ath/ath10k/mac.c
    @@ -8542,12 +8542,13 @@ static void ath10k_sta_statistics(struct ieee80211_hw *hw,
    sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_BITRATE);

    if (ar->htt.disable_tx_comp) {
    - sinfo->tx_retries = arsta->tx_retries;
    - sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_RETRIES);
    sinfo->tx_failed = arsta->tx_failed;
    sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_FAILED);
    }

    + sinfo->tx_retries = arsta->tx_retries;
    + sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_RETRIES);
    +
    ath10k_mac_sta_get_peer_stats_info(ar, sta, sinfo);
    }

    --
    2.27.0


    \
     
     \ /
      Last update: 2020-11-03 23:09    [W:2.804 / U:0.208 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site