wifi: mac80211: read ethtool's sta_stats from sinfo

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>
This commit is contained in:
Ryder Lee 2022-08-26 06:33:16 +08:00 committed by Johannes Berg
parent abd27d063c
commit 83888346c5

View 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