This reverts commit c296ba834d.
According to several reports, the issues with the airtime fairness
changes are gone in current versions.
It's time to re-apply the patch now.
Signed-off-by: Felix Fietkau <nbd@nbd.name>
		
	
		
			
				
	
	
		
			63 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From: =?UTF-8?q?Toke=20H=C3=B8iland-J=C3=B8rgensen?= <toke@toke.dk>
 | 
						|
Date: Mon, 5 Dec 2016 13:27:38 +0200
 | 
						|
Subject: [PATCH] ath9k: Turn ath_txq_lock/unlock() into static inlines.
 | 
						|
MIME-Version: 1.0
 | 
						|
Content-Type: text/plain; charset=UTF-8
 | 
						|
Content-Transfer-Encoding: 8bit
 | 
						|
 | 
						|
These are one-line functions that just call spin_lock/unlock_bh(); turn
 | 
						|
them into static inlines to avoid the function call overhead.
 | 
						|
 | 
						|
Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
 | 
						|
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
 | 
						|
---
 | 
						|
 | 
						|
--- a/drivers/net/wireless/ath/ath9k/ath9k.h
 | 
						|
+++ b/drivers/net/wireless/ath/ath9k/ath9k.h
 | 
						|
@@ -569,6 +569,15 @@ static inline void ath_chanctx_check_act
 | 
						|
 
 | 
						|
 #endif /* CPTCFG_ATH9K_CHANNEL_CONTEXT */
 | 
						|
 
 | 
						|
+static inline void ath_txq_lock(struct ath_softc *sc, struct ath_txq *txq)
 | 
						|
+{
 | 
						|
+	spin_lock_bh(&txq->axq_lock);
 | 
						|
+}
 | 
						|
+static inline void ath_txq_unlock(struct ath_softc *sc, struct ath_txq *txq)
 | 
						|
+{
 | 
						|
+	spin_unlock_bh(&txq->axq_lock);
 | 
						|
+}
 | 
						|
+
 | 
						|
 void ath_startrecv(struct ath_softc *sc);
 | 
						|
 bool ath_stoprecv(struct ath_softc *sc);
 | 
						|
 u32 ath_calcrxfilter(struct ath_softc *sc);
 | 
						|
@@ -576,8 +585,6 @@ int ath_rx_init(struct ath_softc *sc, in
 | 
						|
 void ath_rx_cleanup(struct ath_softc *sc);
 | 
						|
 int ath_rx_tasklet(struct ath_softc *sc, int flush, bool hp);
 | 
						|
 struct ath_txq *ath_txq_setup(struct ath_softc *sc, int qtype, int subtype);
 | 
						|
-void ath_txq_lock(struct ath_softc *sc, struct ath_txq *txq);
 | 
						|
-void ath_txq_unlock(struct ath_softc *sc, struct ath_txq *txq);
 | 
						|
 void ath_txq_unlock_complete(struct ath_softc *sc, struct ath_txq *txq);
 | 
						|
 void ath_tx_cleanupq(struct ath_softc *sc, struct ath_txq *txq);
 | 
						|
 bool ath_drain_all_txq(struct ath_softc *sc);
 | 
						|
--- a/drivers/net/wireless/ath/ath9k/xmit.c
 | 
						|
+++ b/drivers/net/wireless/ath/ath9k/xmit.c
 | 
						|
@@ -98,18 +98,6 @@ static void ath_tx_status(struct ieee802
 | 
						|
 	dev_kfree_skb(skb);
 | 
						|
 }
 | 
						|
 
 | 
						|
-void ath_txq_lock(struct ath_softc *sc, struct ath_txq *txq)
 | 
						|
-	__acquires(&txq->axq_lock)
 | 
						|
-{
 | 
						|
-	spin_lock_bh(&txq->axq_lock);
 | 
						|
-}
 | 
						|
-
 | 
						|
-void ath_txq_unlock(struct ath_softc *sc, struct ath_txq *txq)
 | 
						|
-	__releases(&txq->axq_lock)
 | 
						|
-{
 | 
						|
-	spin_unlock_bh(&txq->axq_lock);
 | 
						|
-}
 | 
						|
-
 | 
						|
 void ath_txq_unlock_complete(struct ath_softc *sc, struct ath_txq *txq)
 | 
						|
 	__releases(&txq->axq_lock)
 | 
						|
 {
 |