From f500b4d7d2eb30f46fe0b75afb7b9bd94f96cf55 Mon Sep 17 00:00:00 2001
From: Yi-Chia Hsieh <yi-chia.hsieh@mediatek.com>
Date: Wed, 16 Aug 2023 07:23:34 +0800
Subject: [PATCH 31/37] mtk: mac80211: add per-bss flag to support vendors
 counter

---
 include/uapi/linux/nl80211.h |  1 +
 net/mac80211/rx.c            |  8 ++++++--
 net/mac80211/tx.c            | 13 ++++++++++---
 3 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h
index 6e96ad9..b1555bb 100644
--- a/include/uapi/linux/nl80211.h
+++ b/include/uapi/linux/nl80211.h
@@ -6471,6 +6471,7 @@ enum nl80211_ext_feature_index {
 	NL80211_EXT_FEATURE_PUNCT,
 	NL80211_EXT_FEATURE_SECURE_NAN,
 	NL80211_EXT_FEATURE_AUTH_AND_DEAUTH_RANDOM_TA,
+	NL80211_EXT_FEATURE_STAS_COUNT,
 
 	/* add new features before the definition below */
 	NUM_NL80211_EXT_FEATURES,
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 7a80945..0cf8c59 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -2631,7 +2631,9 @@ ieee80211_deliver_skb(struct ieee80211_rx_data *rx)
 	skb = rx->skb;
 	xmit_skb = NULL;
 
-	dev_sw_netstats_rx_add(dev, 1, skb->len);
+	if (!wiphy_ext_feature_isset(sdata->local->hw.wiphy,
+	    NL80211_EXT_FEATURE_STAS_COUNT) || !rx->sta)
+		dev_sw_netstats_rx_add(dev, 1, skb->len);
 
 	if (rx->sta) {
 		/* The seqno index has the same property as needed
@@ -4762,7 +4764,9 @@ static void ieee80211_rx_8023(struct ieee80211_rx_data *rx,
 
 	skb->dev = fast_rx->dev;
 
-	dev_sw_netstats_rx_add(fast_rx->dev, 1, skb->len);
+	if (!wiphy_ext_feature_isset(sta->local->hw.wiphy,
+	    NL80211_EXT_FEATURE_STAS_COUNT))
+		dev_sw_netstats_rx_add(fast_rx->dev, 1, skb->len);
 
 	/* The seqno index has the same property as needed
 	 * for the rx_msdu field, i.e. it is IEEE80211_NUM_TIDS
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index c8fade8..0f6c960 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -3541,7 +3541,9 @@ ieee80211_xmit_fast_finish(struct ieee80211_sub_if_data *sdata,
 	if (key)
 		info->control.hw_key = &key->conf;
 
-	dev_sw_netstats_tx_add(skb->dev, 1, skb->len);
+	if (!wiphy_ext_feature_isset(sta->local->hw.wiphy,
+	    NL80211_EXT_FEATURE_STAS_COUNT))
+		dev_sw_netstats_tx_add(skb->dev, 1, skb->len);
 
 	if (hdr->frame_control & cpu_to_le16(IEEE80211_STYPE_QOS_DATA)) {
 		tid = skb->priority & IEEE80211_QOS_CTL_TAG1D_MASK;
@@ -4313,7 +4315,9 @@ void __ieee80211_subif_start_xmit(struct sk_buff *skb,
 			goto out;
 		}
 
-		dev_sw_netstats_tx_add(dev, 1, skb->len);
+		if (!wiphy_ext_feature_isset(sdata->local->hw.wiphy,
+		    NL80211_EXT_FEATURE_STAS_COUNT) || !sta)
+			dev_sw_netstats_tx_add(dev, 1, skb->len);
 
 		ieee80211_xmit(sdata, sta, skb);
 	}
@@ -4645,7 +4649,10 @@ static void ieee80211_8023_xmit(struct ieee80211_sub_if_data *sdata,
 		info->ack_frame_id = ieee80211_store_ack_skb(local, skb,
 							     &info->flags, NULL);
 
-	dev_sw_netstats_tx_add(dev, skbs, len);
+	if (!wiphy_ext_feature_isset(sta->local->hw.wiphy,
+	    NL80211_EXT_FEATURE_STAS_COUNT))
+		dev_sw_netstats_tx_add(dev, skbs, len);
+
 	sta->deflink.tx_stats.packets[queue] += skbs;
 	sta->deflink.tx_stats.bytes[queue] += len;
 
-- 
2.18.0

