mirror of
https://github.com/breeze303/openwrt-ipq.git
synced 2025-12-16 19:41:05 +00:00
ath11k_nss: mac80211 fix pending airtime
On platforms using ath10k with mac80211 'nss_redirect' enabled, a warning `ieee80211_sta_update_pending_airtime` is observered whenever traffic load is high (iperf3). Don't offload if pending queue > 1000 Signed-off-by: Sean Khan <datapronix@protonmail.com>
This commit is contained in:
parent
08362e886f
commit
ebdd70c9cb
@ -136,7 +136,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
|
||||
return 0;
|
||||
--- a/net/mac80211/rx.c
|
||||
+++ b/net/mac80211/rx.c
|
||||
@@ -2569,6 +2569,54 @@ static bool ieee80211_frame_allowed(stru
|
||||
@@ -2569,6 +2569,58 @@ static bool ieee80211_frame_allowed(stru
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -154,6 +154,10 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
|
||||
+ case_rtn_string(NSS_TX_FAILURE_TOO_SHORT);
|
||||
+ case_rtn_string(NSS_TX_FAILURE_NOT_SUPPORTED);
|
||||
+ case_rtn_string(NSS_TX_FAILURE_BAD_PARAM);
|
||||
+ case_rtn_string(NSS_TX_FAILURE_NOT_ENABLED);
|
||||
+ case_rtn_string(NSS_TX_FAILURE_SYNC_BAD_PARAM);
|
||||
+ case_rtn_string(NSS_TX_FAILURE_SYNC_TIMEOUT);
|
||||
+ case_rtn_string(NSS_TX_FAILURE_SYNC_FW_ERR);
|
||||
+ default:
|
||||
+ return "Unknown NSS TX status";
|
||||
+ }
|
||||
@ -191,7 +195,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
|
||||
static void ieee80211_deliver_skb_to_local_stack(struct sk_buff *skb,
|
||||
struct ieee80211_rx_data *rx)
|
||||
{
|
||||
@@ -2608,11 +2656,15 @@ static void ieee80211_deliver_skb_to_loc
|
||||
@@ -2608,11 +2660,15 @@ static void ieee80211_deliver_skb_to_loc
|
||||
!ether_addr_equal(ehdr->h_dest, sdata->vif.addr)))
|
||||
ether_addr_copy(ehdr->h_dest, sdata->vif.addr);
|
||||
|
||||
@ -209,7 +213,25 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
|
||||
|
||||
--- a/net/mac80211/tx.c
|
||||
+++ b/net/mac80211/tx.c
|
||||
@@ -4504,6 +4504,35 @@ static void ieee80211_mlo_multicast_tx(s
|
||||
@@ -1726,7 +1726,16 @@ static bool ieee80211_tx_frags(struct ie
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
-
|
||||
+#ifdef CPTCFG_MAC80211_NSS_SUPPORT
|
||||
+ if (skb_queue_len(&local->pending[q]) >= 1000) {
|
||||
+ spin_unlock_irqrestore(
|
||||
+ &local->queue_stop_reason_lock,
|
||||
+ flags);
|
||||
+ ieee80211_purge_tx_queue(&local->hw,
|
||||
+ skbs);
|
||||
+ return false;
|
||||
+ }
|
||||
+#endif
|
||||
/*
|
||||
* Since queue is stopped, queue up frames for
|
||||
* later transmission from the tx-pending
|
||||
@@ -4504,6 +4513,35 @@ static void ieee80211_mlo_multicast_tx(s
|
||||
kfree_skb(skb);
|
||||
}
|
||||
|
||||
@ -245,7 +267,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
|
||||
/**
|
||||
* ieee80211_subif_start_xmit - netif start_xmit function for 802.3 vifs
|
||||
* @skb: packet to be sent
|
||||
@@ -4517,6 +4546,10 @@ netdev_tx_t ieee80211_subif_start_xmit(s
|
||||
@@ -4517,6 +4555,10 @@ netdev_tx_t ieee80211_subif_start_xmit(s
|
||||
struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
|
||||
const struct ethhdr *eth = (void *)skb->data;
|
||||
|
||||
@ -256,7 +278,7 @@ Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org>
|
||||
if (likely(!is_multicast_ether_addr(eth->h_dest)))
|
||||
goto normal;
|
||||
|
||||
@@ -4703,6 +4736,9 @@ netdev_tx_t ieee80211_subif_start_xmit_8
|
||||
@@ -4703,6 +4745,9 @@ netdev_tx_t ieee80211_subif_start_xmit_8
|
||||
struct ieee80211_key *key;
|
||||
struct sta_info *sta;
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user