mirror of
				https://github.com/Telecominfraproject/wlan-ap.git
				synced 2025-10-31 10:28:06 +00:00 
			
		
		
		
	wifi: revert some tweaks that are causing stability issues
this will come back in 2.6 once stability is restored Signed-off-by: John Crispin <john@phrozen.org>
This commit is contained in:
		| @@ -1,67 +0,0 @@ | |||||||
| #!/bin/sh |  | ||||||
| [ "$ACTION" = add ] || exit |  | ||||||
|  |  | ||||||
| NPROCS="$(grep -c "^processor.*:" /proc/cpuinfo)" |  | ||||||
| [ "$NPROCS" -gt 1 ] || exit |  | ||||||
|  |  | ||||||
| PROC_MASK="$(( (1 << $NPROCS) - 1 ))" |  | ||||||
|  |  | ||||||
| find_irq_cpu() { |  | ||||||
| 	local dev="$1" |  | ||||||
| 	local match="$(grep -m 1 "$dev\$" /proc/interrupts)" |  | ||||||
| 	local cpu=0 |  | ||||||
|  |  | ||||||
| 	[ -n "$match" ] && { |  | ||||||
| 		set -- $match |  | ||||||
| 		shift |  | ||||||
| 		for cur in `seq 1 $NPROCS`; do |  | ||||||
| 			[ "$1" -gt 0 ] && { |  | ||||||
| 				cpu=$(($cur - 1)) |  | ||||||
| 				break |  | ||||||
| 			} |  | ||||||
| 			shift |  | ||||||
| 		done |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	echo "$cpu" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| set_hex_val() { |  | ||||||
| 	local file="$1" |  | ||||||
| 	local val="$2" |  | ||||||
| 	val="$(printf %x "$val")" |  | ||||||
| 	[ -n "$DEBUG" ] && echo "$file = $val" |  | ||||||
| 	echo "$val" > "$file" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| default_ps="$(uci get "network.@globals[0].default_ps")" |  | ||||||
| [ -n "$default_ps" -a "$default_ps" != 1 ] && exit 0 |  | ||||||
|  |  | ||||||
| exec 512>/var/lock/smp_tune.lock |  | ||||||
| flock 512 || exit 1 |  | ||||||
|  |  | ||||||
| for dev in /sys/class/net/*; do |  | ||||||
| 	[ -d "$dev" ] || continue |  | ||||||
|  |  | ||||||
| 	# ignore virtual interfaces |  | ||||||
| 	[ -n "$(ls "${dev}/" | grep '^lower_')" ] && continue |  | ||||||
| 	[ -d "${dev}/device" ] || continue |  | ||||||
|  |  | ||||||
| 	device="$(readlink "${dev}/device")" |  | ||||||
| 	device="$(basename "$device")" |  | ||||||
| 	irq_cpu="$(find_irq_cpu "$device")" |  | ||||||
| 	irq_cpu_mask="$((1 << $irq_cpu))" |  | ||||||
|  |  | ||||||
| 	for q in ${dev}/queues/rx-*; do |  | ||||||
| 		set_hex_val "$q/rps_cpus" "$(($PROC_MASK & ~$irq_cpu_mask))" |  | ||||||
| 	done |  | ||||||
|  |  | ||||||
| 	ntxq="$(ls -d ${dev}/queues/tx-* | wc -l)" |  | ||||||
|  |  | ||||||
| 	idx=$(($irq_cpu + 1)) |  | ||||||
| 	for q in ${dev}/queues/tx-*; do |  | ||||||
| 		set_hex_val "$q/xps_cpus" "$((1 << $idx))" |  | ||||||
| 		let "idx = idx + 1" |  | ||||||
| 		[ "$idx" -ge "$NPROCS" ] && idx=0 |  | ||||||
| 	done |  | ||||||
| done |  | ||||||
| @@ -1,58 +0,0 @@ | |||||||
| #!/bin/sh /etc/rc.common |  | ||||||
|  |  | ||||||
| START=80 |  | ||||||
|  |  | ||||||
| set_affinity() { |  | ||||||
| 	local affinity=$1 |  | ||||||
| 	local name=$2 |  | ||||||
| 	local irq=`grep -E -m1 $name /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` |  | ||||||
|         [ -n "$irq" ] && { |  | ||||||
| 		logger ath11k setting affinity for $name/$irq to $affinity |  | ||||||
| 		echo $affinity > /proc/irq/$irq/smp_affinity |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| boot() { |  | ||||||
| 	. /lib/functions/system.sh |  | ||||||
|  |  | ||||||
| 	board=$(board_name) |  | ||||||
| 	case $board in |  | ||||||
| 	cig,wf196) |  | ||||||
| 		set_affinity 1 reo2host-destination-ring2 |  | ||||||
| 		set_affinity 2 reo2host-destination-ring1 |  | ||||||
| 		;; |  | ||||||
| 	*) |  | ||||||
| 		set_affinity 2 reo2host-destination-ring2 |  | ||||||
| 		set_affinity 1 reo2host-destination-ring1 |  | ||||||
| 		;; |  | ||||||
| 	esac |  | ||||||
|  |  | ||||||
| 	case $board in |  | ||||||
| 	maple) |  | ||||||
| 		;; |  | ||||||
| 	*) |  | ||||||
| 		set_affinity 8 reo2host-destination-ring4 |  | ||||||
| 		set_affinity 4 reo2host-destination-ring3 |  | ||||||
| 	 |  | ||||||
| 		set_affinity 8 wbm2host-tx-completions-ring3 |  | ||||||
| 		set_affinity 4 wbm2host-tx-completions-ring2 |  | ||||||
| 		set_affinity 2 wbm2host-tx-completions-ring1 |  | ||||||
|  |  | ||||||
| 		set_affinity 8 ppdu-end-interrupts-mac1 |  | ||||||
| 		set_affinity 8 rxdma2host-monitor-status-ring-mac1 |  | ||||||
| 		set_affinity 8 rxdma2host-monitor-destination-mac1 |  | ||||||
| 		set_affinity 8 host2rxdma-monitor-ring1 |  | ||||||
| 		;; |  | ||||||
| 	esac |  | ||||||
|  |  | ||||||
| 	set_affinity 4 ppdu-end-interrupts-mac2 |  | ||||||
| 	set_affinity 4 rxdma2host-monitor-status-ring-mac2 |  | ||||||
| 	set_affinity 4 rxdma2host-monitor-destination-mac2 |  | ||||||
| 	set_affinity 4 host2rxdma-monitor-ring2 |  | ||||||
|  |  | ||||||
| 	set_affinity 2 ppdu-end-interrupts-mac3 |  | ||||||
| 	set_affinity 2 rxdma2host-monitor-status-ring-mac3 |  | ||||||
| 	set_affinity 2 rxdma2host-monitor-destination-mac3 |  | ||||||
| 	set_affinity 2 host2rxdma-monitor-ring3 |  | ||||||
| } |  | ||||||
|  |  | ||||||
| @@ -1,36 +0,0 @@ | |||||||
| From fd65e5a95d08389444e8591a20538b3edece0e15 Mon Sep 17 00:00:00 2001 |  | ||||||
| From: Nikolay Aleksandrov <nikolay@cumulusnetworks.com> |  | ||||||
| Date: Fri, 31 Jul 2020 19:26:16 +0300 |  | ||||||
| Subject: [PATCH] net: bridge: clear bridge's private skb space on xmit |  | ||||||
|  |  | ||||||
| We need to clear all of the bridge private skb variables as they can be |  | ||||||
| stale due to the packet being recirculated through the stack and then |  | ||||||
| transmitted through the bridge device. Similar memset is already done on |  | ||||||
| bridge's input. We've seen cases where proxyarp_replied was 1 on routed |  | ||||||
| multicast packets transmitted through the bridge to ports with neigh |  | ||||||
| suppress which were getting dropped. Same thing can in theory happen with |  | ||||||
| the port isolation bit as well. |  | ||||||
|  |  | ||||||
| Fixes: 821f1b21cabb ("bridge: add new BR_NEIGH_SUPPRESS port flag to suppress arp and nd flood") |  | ||||||
| Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com> |  | ||||||
| Signed-off-by: David S. Miller <davem@davemloft.net> |  | ||||||
| --- |  | ||||||
|  net/bridge/br_device.c | 2 ++ |  | ||||||
|  1 file changed, 2 insertions(+) |  | ||||||
|  |  | ||||||
| diff --git a/net/bridge/br_device.c b/net/bridge/br_device.c |  | ||||||
| index 8c7b78f8bc23..9a2fb4aa1a10 100644 |  | ||||||
| --- a/net/bridge/br_device.c |  | ||||||
| +++ b/net/bridge/br_device.c |  | ||||||
| @@ -36,6 +36,8 @@ netdev_tx_t br_dev_xmit(struct sk_buff *skb, struct net_device *dev) |  | ||||||
|  	const unsigned char *dest; |  | ||||||
|  	u16 vid = 0; |  | ||||||
|   |  | ||||||
| +	memset(skb->cb, 0, sizeof(struct br_input_skb_cb)); |  | ||||||
| + |  | ||||||
|  	rcu_read_lock(); |  | ||||||
|  	nf_ops = rcu_dereference(nf_br_ops); |  | ||||||
|  	if (nf_ops && nf_ops->br_dev_xmit_hook(skb)) { |  | ||||||
| --  |  | ||||||
| 2.25.1 |  | ||||||
|  |  | ||||||
							
								
								
									
										21
									
								
								feeds/wifi-ax/mac80211/patches/pending/214-no-encap.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								feeds/wifi-ax/mac80211/patches/pending/214-no-encap.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,21 @@ | |||||||
|  | Index: backports-20210222_001-4.4.60-b157d2276/drivers/net/wireless/ath/ath11k/mac.c | ||||||
|  | =================================================================== | ||||||
|  | --- backports-20210222_001-4.4.60-b157d2276.orig/drivers/net/wireless/ath/ath11k/mac.c | ||||||
|  | +++ backports-20210222_001-4.4.60-b157d2276/drivers/net/wireless/ath/ath11k/mac.c | ||||||
|  | @@ -6590,6 +6590,7 @@ static int ath11k_mac_op_update_vif_offl | ||||||
|  |  	u32 param_id, param_value; | ||||||
|  |  	int ret; | ||||||
|  |   | ||||||
|  | +	return 0; | ||||||
|  |  	if (ab->nss.enabled && vif->type == NL80211_IFTYPE_AP_VLAN) | ||||||
|  |  		return 0; | ||||||
|  |   | ||||||
|  | @@ -6835,6 +6836,8 @@ static int ath11k_mac_op_add_interface(s | ||||||
|  |  	else | ||||||
|  |  		param_value = ATH11K_HW_TXRX_NATIVE_WIFI; | ||||||
|  |   | ||||||
|  | +	param_value = ATH11K_HW_TXRX_NATIVE_WIFI; | ||||||
|  | + | ||||||
|  |  	ret = ath11k_nss_vdev_set_cmd(arvif, NSS_WIFI_VDEV_ENCAP_TYPE_CMD, param_value); | ||||||
|  |   | ||||||
|  |  	if(ret) { | ||||||
| @@ -1,66 +0,0 @@ | |||||||
| From 9bede53698b963280df8b7c3c85c052e66e9d548 Mon Sep 17 00:00:00 2001 |  | ||||||
| From: John Crispin <john@phrozen.org> |  | ||||||
| Date: Thu, 17 Feb 2022 08:27:09 +0100 |  | ||||||
| Subject: [PATCH] net: bridge: clear bridge's private skb space on xmit |  | ||||||
|  |  | ||||||
| We need to clear all of the bridge private skb variables as they can be |  | ||||||
| stale due to the packet being recirculated through the stack and then |  | ||||||
| transmitted through the bridge device. Similar memset is already done on |  | ||||||
| bridge's input. We've seen cases where proxyarp_replied was 1 on routed |  | ||||||
| multicast packets transmitted through the bridge to ports with neigh |  | ||||||
| suppress which were getting dropped. Same thing can in theory happen with |  | ||||||
| the port isolation bit as well. |  | ||||||
|  |  | ||||||
| Fixes: 821f1b21cabb ("bridge: add new BR_NEIGH_SUPPRESS port flag to suppress arp and nd flood") |  | ||||||
| Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com> |  | ||||||
| Signed-off-by: David S. Miller <davem@davemloft.net> |  | ||||||
| --- |  | ||||||
|  ...r-bridge-s-private-skb-space-on-xmit.patch | 36 +++++++++++++++++++ |  | ||||||
|  1 file changed, 36 insertions(+) |  | ||||||
|  create mode 100644 target/linux/generic/backport-5.4/999-net-bridge-clear-bridge-s-private-skb-space-on-xmit.patch |  | ||||||
|  |  | ||||||
| diff --git a/target/linux/generic/backport-5.4/999-net-bridge-clear-bridge-s-private-skb-space-on-xmit.patch b/target/linux/generic/backport-5.4/999-net-bridge-clear-bridge-s-private-skb-space-on-xmit.patch |  | ||||||
| new file mode 100644 |  | ||||||
| index 0000000000..20f71569da |  | ||||||
| --- /dev/null |  | ||||||
| +++ b/target/linux/generic/backport-5.4/999-net-bridge-clear-bridge-s-private-skb-space-on-xmit.patch |  | ||||||
| @@ -0,0 +1,36 @@ |  | ||||||
| +From fd65e5a95d08389444e8591a20538b3edece0e15 Mon Sep 17 00:00:00 2001 |  | ||||||
| +From: Nikolay Aleksandrov <nikolay@cumulusnetworks.com> |  | ||||||
| +Date: Fri, 31 Jul 2020 19:26:16 +0300 |  | ||||||
| +Subject: [PATCH] net: bridge: clear bridge's private skb space on xmit |  | ||||||
| + |  | ||||||
| +We need to clear all of the bridge private skb variables as they can be |  | ||||||
| +stale due to the packet being recirculated through the stack and then |  | ||||||
| +transmitted through the bridge device. Similar memset is already done on |  | ||||||
| +bridge's input. We've seen cases where proxyarp_replied was 1 on routed |  | ||||||
| +multicast packets transmitted through the bridge to ports with neigh |  | ||||||
| +suppress which were getting dropped. Same thing can in theory happen with |  | ||||||
| +the port isolation bit as well. |  | ||||||
| + |  | ||||||
| +Fixes: 821f1b21cabb ("bridge: add new BR_NEIGH_SUPPRESS port flag to suppress arp and nd flood") |  | ||||||
| +Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com> |  | ||||||
| +Signed-off-by: David S. Miller <davem@davemloft.net> |  | ||||||
| +--- |  | ||||||
| + net/bridge/br_device.c | 2 ++ |  | ||||||
| + 1 file changed, 2 insertions(+) |  | ||||||
| + |  | ||||||
| +diff --git a/net/bridge/br_device.c b/net/bridge/br_device.c |  | ||||||
| +index 8c7b78f8bc23..9a2fb4aa1a10 100644 |  | ||||||
| +--- a/net/bridge/br_device.c |  | ||||||
| ++++ b/net/bridge/br_device.c |  | ||||||
| +@@ -36,6 +36,8 @@ netdev_tx_t br_dev_xmit(struct sk_buff *skb, struct net_device *dev) |  | ||||||
| + 	const unsigned char *dest; |  | ||||||
| + 	u16 vid = 0; |  | ||||||
| +  |  | ||||||
| ++	memset(skb->cb, 0, sizeof(struct br_input_skb_cb)); |  | ||||||
| ++ |  | ||||||
| + 	rcu_read_lock(); |  | ||||||
| + 	nf_ops = rcu_dereference(nf_br_ops); |  | ||||||
| + 	if (nf_ops && nf_ops->br_dev_xmit_hook(skb)) { |  | ||||||
| +--  |  | ||||||
| +2.25.1 |  | ||||||
| + |  | ||||||
| --  |  | ||||||
| 2.25.1 |  | ||||||
|  |  | ||||||
		Reference in New Issue
	
	Block a user
	 John Crispin
					John Crispin