diff mbox series

mac80211: remove STA txq pending airtime underflow warning

Message ID 20200725084533.13829-1-nbd@nbd.name (mailing list archive)
State Accepted
Delegated to: Johannes Berg
Headers show
Series mac80211: remove STA txq pending airtime underflow warning | expand

Commit Message

Felix Fietkau July 25, 2020, 8:45 a.m. UTC
This warning can trigger if there is a mismatch between frames that were
sent with the sta pointer set vs tx status frames reported for the sta address.

This can happen due to race conditions on re-creating stations, or even
in the case of .sta_add/remove being used instead of .sta_state, which can cause
frames to be sent to a station that has not been uploaded yet.

If there is an actual underflow issue, it should show up in the device airtime
warning below, so it is better to remove this one.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
 net/mac80211/sta_info.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

Comments

Toke Høiland-Jørgensen Aug. 11, 2020, 9:31 a.m. UTC | #1
Felix Fietkau <nbd@nbd.name> writes:

> This warning can trigger if there is a mismatch between frames that were
> sent with the sta pointer set vs tx status frames reported for the sta address.
>
> This can happen due to race conditions on re-creating stations, or even
> in the case of .sta_add/remove being used instead of .sta_state, which can cause
> frames to be sent to a station that has not been uploaded yet.
>
> If there is an actual underflow issue, it should show up in the device airtime
> warning below, so it is better to remove this one.

Fair enough.

Acked-by: Toke Høiland-Jørgensen <toke@redhat.com>
diff mbox series

Patch

diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c
index cd8487bc6fc2..af4cc5fb678e 100644
--- a/net/mac80211/sta_info.c
+++ b/net/mac80211/sta_info.c
@@ -1923,9 +1923,7 @@  void ieee80211_sta_update_pending_airtime(struct ieee80211_local *local,
 	if (sta) {
 		tx_pending = atomic_sub_return(tx_airtime,
 					       &sta->airtime[ac].aql_tx_pending);
-		if (WARN_ONCE(tx_pending < 0,
-			      "STA %pM AC %d txq pending airtime underflow: %u, %u",
-			      sta->addr, ac, tx_pending, tx_airtime))
+		if (tx_pending < 0)
 			atomic_cmpxchg(&sta->airtime[ac].aql_tx_pending,
 				       tx_pending, 0);
 	}