mac80211: partly revert force-mac80211 loss detection
This patch will only force mac80211 loss detection upon ath10k by masking the driver-specific loss-detection bit. Ref: commited816f6ba8("mac80211: always use mac80211 loss detection") Signed-off-by: David Bauer <mail@david-bauer.net> (cherry picked from commitd9070f8d23) [felix.bau@gmx.de: replace path 6.2 with 5.15, refresh patches] Signed-off-by: Felix Baumann <felix.bau@gmx.de>
This commit is contained in:
		 David Bauer
					David Bauer
				
			
				
					committed by
					
						 Hauke Mehrtens
						Hauke Mehrtens
					
				
			
			
				
	
			
			
			 Hauke Mehrtens
						Hauke Mehrtens
					
				
			
						parent
						
							ead5860c56
						
					
				
				
					commit
					8d6a9051cd
				
			| @@ -0,0 +1,28 @@ | |||||||
|  | From f7d6edafe4358e3880a26775cfde4cd5c71ba063 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: David Bauer <mail@david-bauer.net> | ||||||
|  | Date: Wed, 5 Jul 2023 01:30:29 +0200 | ||||||
|  | Subject: [PATCH] ath10k: always use mac80211 loss detection | ||||||
|  |  | ||||||
|  | ath10k does not report excessive loss in case of broken block-ack | ||||||
|  | sessions. The loss is communicated to the host-os, but ath10k does not | ||||||
|  | trigger a low-ack events by itself. | ||||||
|  |  | ||||||
|  | The mac80211 framework for loss detection however detects this | ||||||
|  | circumstance well in case of ath10k. So use it regardless of ath10k's | ||||||
|  | own loss detection mechanism. | ||||||
|  |  | ||||||
|  | Signed-off-by: David Bauer <mail@david-bauer.net> | ||||||
|  | --- | ||||||
|  |  ath10k-5.15/mac.c | 1 - | ||||||
|  |  1 file changed, 1 deletion(-) | ||||||
|  |  | ||||||
|  | --- a/ath10k-5.15/mac.c | ||||||
|  | +++ b/ath10k-5.15/mac.c | ||||||
|  | @@ -11246,7 +11246,6 @@ int ath10k_mac_register(struct ath10k *a | ||||||
|  |  	ieee80211_hw_set(ar->hw, CHANCTX_STA_CSA); | ||||||
|  |  	ieee80211_hw_set(ar->hw, QUEUE_CONTROL); | ||||||
|  |  	ieee80211_hw_set(ar->hw, SUPPORTS_TX_FRAG); | ||||||
|  | -	ieee80211_hw_set(ar->hw, REPORTS_LOW_ACK); | ||||||
|  |   | ||||||
|  |  	if (!test_bit(ATH10K_FLAG_RAW_MODE, &ar->dev_flags)) | ||||||
|  |  		ieee80211_hw_set(ar->hw, SW_CRYPTO_CONTROL); | ||||||
| @@ -0,0 +1,28 @@ | |||||||
|  | From f7d6edafe4358e3880a26775cfde4cd5c71ba063 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: David Bauer <mail@david-bauer.net> | ||||||
|  | Date: Wed, 5 Jul 2023 01:30:29 +0200 | ||||||
|  | Subject: [PATCH] ath10k: always use mac80211 loss detection | ||||||
|  |  | ||||||
|  | ath10k does not report excessive loss in case of broken block-ack | ||||||
|  | sessions. The loss is communicated to the host-os, but ath10k does not | ||||||
|  | trigger a low-ack events by itself. | ||||||
|  |  | ||||||
|  | The mac80211 framework for loss detection however detects this | ||||||
|  | circumstance well in case of ath10k. So use it regardless of ath10k's | ||||||
|  | own loss detection mechanism. | ||||||
|  |  | ||||||
|  | Signed-off-by: David Bauer <mail@david-bauer.net> | ||||||
|  | --- | ||||||
|  |  drivers/net/wireless/ath/ath10k/mac.c | 1 - | ||||||
|  |  1 file changed, 1 deletion(-) | ||||||
|  |  | ||||||
|  | --- a/drivers/net/wireless/ath/ath10k/mac.c | ||||||
|  | +++ b/drivers/net/wireless/ath/ath10k/mac.c | ||||||
|  | @@ -10080,7 +10080,6 @@ int ath10k_mac_register(struct ath10k *a | ||||||
|  |  	ieee80211_hw_set(ar->hw, CHANCTX_STA_CSA); | ||||||
|  |  	ieee80211_hw_set(ar->hw, QUEUE_CONTROL); | ||||||
|  |  	ieee80211_hw_set(ar->hw, SUPPORTS_TX_FRAG); | ||||||
|  | -	ieee80211_hw_set(ar->hw, REPORTS_LOW_ACK); | ||||||
|  |   | ||||||
|  |  	if (!test_bit(ATH10K_FLAG_RAW_MODE, &ar->dev_flags)) | ||||||
|  |  		ieee80211_hw_set(ar->hw, SW_CRYPTO_CONTROL); | ||||||
| @@ -1,36 +0,0 @@ | |||||||
| From cdf461888f900c3a149b10a04d72b4a590ecdec3 Mon Sep 17 00:00:00 2001 |  | ||||||
| From: David Bauer <mail@david-bauer.net> |  | ||||||
| Date: Tue, 16 May 2023 23:11:32 +0200 |  | ||||||
| Subject: [PATCH] mac80211: always use mac80211 loss detection |  | ||||||
|  |  | ||||||
| ath10k does not report excessive loss in case of broken block-ack |  | ||||||
| sessions. The loss is communicated to the host-os, but ath10k does not |  | ||||||
| trigger a low-ack events by itself. |  | ||||||
|  |  | ||||||
| The mac80211 framework for loss detection however detects this |  | ||||||
| circumstance well in case of ath10k. So use it regardless of ath10k's |  | ||||||
| own loss detection mechanism. |  | ||||||
|  |  | ||||||
| Patching this in mac80211 does allow this hack to be used with any |  | ||||||
| flavor of ath10k/ath11k. |  | ||||||
|  |  | ||||||
| Signed-off-by: David Bauer <mail@david-bauer.net> |  | ||||||
| --- |  | ||||||
|  net/mac80211/status.c | 6 ------ |  | ||||||
|  1 file changed, 6 deletions(-) |  | ||||||
|  |  | ||||||
| --- a/net/mac80211/status.c |  | ||||||
| +++ b/net/mac80211/status.c |  | ||||||
| @@ -794,12 +794,6 @@ static void ieee80211_lost_packet(struct |  | ||||||
|  	unsigned long pkt_time = STA_LOST_PKT_TIME; |  | ||||||
|  	unsigned int pkt_thr = STA_LOST_PKT_THRESHOLD; |  | ||||||
|   |  | ||||||
| -	/* If driver relies on its own algorithm for station kickout, skip |  | ||||||
| -	 * mac80211 packet loss mechanism. |  | ||||||
| -	 */ |  | ||||||
| -	if (ieee80211_hw_check(&sta->local->hw, REPORTS_LOW_ACK)) |  | ||||||
| -		return; |  | ||||||
| - |  | ||||||
|  	/* This packet was aggregated but doesn't carry status info */ |  | ||||||
|  	if ((info->flags & IEEE80211_TX_CTL_AMPDU) && |  | ||||||
|  	    !(info->flags & IEEE80211_TX_STAT_AMPDU)) |  | ||||||
		Reference in New Issue
	
	Block a user