From 17fe72c6e9e87d78033247daa3847aceb83e1fc5 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Wed, 23 Feb 2022 08:24:36 +0100 Subject: [PATCH] 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 --- .../base-files/etc/hotplug.d/net/20-smp-tune | 67 ------------------- .../ipq807x/ipq807x/base-files/etc/init.d/smp | 58 ---------------- ...r-bridge-s-private-skb-space-on-xmit.patch | 36 ---------- .../patches/pending/214-no-encap.patch | 21 ++++++ ...r-bridge-s-private-skb-space-on-xmit.patch | 66 ------------------ 5 files changed, 21 insertions(+), 227 deletions(-) delete mode 100644 feeds/ipq807x/ipq807x/base-files/etc/hotplug.d/net/20-smp-tune delete mode 100755 feeds/ipq807x/ipq807x/base-files/etc/init.d/smp delete mode 100644 feeds/ipq807x/ipq807x/patches/109-net-bridge-clear-bridge-s-private-skb-space-on-xmit.patch create mode 100644 feeds/wifi-ax/mac80211/patches/pending/214-no-encap.patch delete mode 100644 patches/backports/0033-net-bridge-clear-bridge-s-private-skb-space-on-xmit.patch diff --git a/feeds/ipq807x/ipq807x/base-files/etc/hotplug.d/net/20-smp-tune b/feeds/ipq807x/ipq807x/base-files/etc/hotplug.d/net/20-smp-tune deleted file mode 100644 index ab9a90418..000000000 --- a/feeds/ipq807x/ipq807x/base-files/etc/hotplug.d/net/20-smp-tune +++ /dev/null @@ -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 diff --git a/feeds/ipq807x/ipq807x/base-files/etc/init.d/smp b/feeds/ipq807x/ipq807x/base-files/etc/init.d/smp deleted file mode 100755 index 2fa6cce4e..000000000 --- a/feeds/ipq807x/ipq807x/base-files/etc/init.d/smp +++ /dev/null @@ -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 -} - diff --git a/feeds/ipq807x/ipq807x/patches/109-net-bridge-clear-bridge-s-private-skb-space-on-xmit.patch b/feeds/ipq807x/ipq807x/patches/109-net-bridge-clear-bridge-s-private-skb-space-on-xmit.patch deleted file mode 100644 index 20f71569d..000000000 --- a/feeds/ipq807x/ipq807x/patches/109-net-bridge-clear-bridge-s-private-skb-space-on-xmit.patch +++ /dev/null @@ -1,36 +0,0 @@ -From fd65e5a95d08389444e8591a20538b3edece0e15 Mon Sep 17 00:00:00 2001 -From: Nikolay Aleksandrov -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 -Signed-off-by: David S. Miller ---- - 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 - diff --git a/feeds/wifi-ax/mac80211/patches/pending/214-no-encap.patch b/feeds/wifi-ax/mac80211/patches/pending/214-no-encap.patch new file mode 100644 index 000000000..83259cae8 --- /dev/null +++ b/feeds/wifi-ax/mac80211/patches/pending/214-no-encap.patch @@ -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) { diff --git a/patches/backports/0033-net-bridge-clear-bridge-s-private-skb-space-on-xmit.patch b/patches/backports/0033-net-bridge-clear-bridge-s-private-skb-space-on-xmit.patch deleted file mode 100644 index cefdab0de..000000000 --- a/patches/backports/0033-net-bridge-clear-bridge-s-private-skb-space-on-xmit.patch +++ /dev/null @@ -1,66 +0,0 @@ -From 9bede53698b963280df8b7c3c85c052e66e9d548 Mon Sep 17 00:00:00 2001 -From: John Crispin -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 -Signed-off-by: David S. Miller ---- - ...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 -+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 -+Signed-off-by: David S. Miller -+--- -+ 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 -