wifi: mac80211: read ethtool's sta_stats from sinfo
authorRyder Lee <ryder.lee@mediatek.com>
Thu, 25 Aug 2022 22:33:16 +0000 (06:33 +0800)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 26 Aug 2022 07:56:54 +0000 (09:56 +0200)
Driver may update sinfo directly through .sta_statistics, so this
patch makes sure that ethool gets the correct statistics.

Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
Link: https://lore.kernel.org/r/f9edff14dd7f5205acf1c21bae8e9d8f9802dd88.1661466499.git.ryder.lee@mediatek.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/ethtool.c

index c2b3837..a3830d9 100644 (file)
@@ -83,17 +83,17 @@ static void ieee80211_get_stats(struct net_device *dev,
 
 #define ADD_STA_STATS(sta)                                     \
        do {                                                    \
-               data[i++] += (sta)->rx_stats.packets;           \
-               data[i++] += (sta)->rx_stats.bytes;             \
+               data[i++] += sinfo.rx_packets;                  \
+               data[i++] += sinfo.rx_bytes;                    \
                data[i++] += (sta)->rx_stats.num_duplicates;    \
                data[i++] += (sta)->rx_stats.fragments;         \
-               data[i++] += (sta)->rx_stats.dropped;           \
+               data[i++] += sinfo.rx_dropped_misc;             \
                                                                \
                data[i++] += sinfo.tx_packets;                  \
                data[i++] += sinfo.tx_bytes;                    \
                data[i++] += (sta)->status_stats.filtered;      \
-               data[i++] += (sta)->status_stats.retry_failed;  \
-               data[i++] += (sta)->status_stats.retry_count;   \
+               data[i++] += sinfo.tx_failed;                   \
+               data[i++] += sinfo.tx_retries;                  \
        } while (0)
 
        /* For Managed stations, find the single station based on BSSID