diff options
author | Felix Fietkau <nbd@nbd.name> | 2022-02-16 20:32:27 +0100 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2022-02-16 20:38:06 +0100 |
commit | dabc78b644c0fb8f17ff5456f6cb92e78b53f248 (patch) | |
tree | 5ab268bc7ee84eb4cade6738c5b3042e9b4b7890 /target/linux/generic/backport-5.4/610-v5.9-net-bridge-clear-bridge-s-private-skb-space-on-xmit.patch | |
parent | 923cc869a6eec7dd6fdf728b2adb05824e4b9ac0 (diff) | |
download | upstream-dabc78b644c0fb8f17ff5456f6cb92e78b53f248.tar.gz upstream-dabc78b644c0fb8f17ff5456f6cb92e78b53f248.tar.bz2 upstream-dabc78b644c0fb8f17ff5456f6cb92e78b53f248.zip |
kernel: backport fix for initializing skb->cb in the bridge code to 5.4
Fixes issues with proxyarp
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'target/linux/generic/backport-5.4/610-v5.9-net-bridge-clear-bridge-s-private-skb-space-on-xmit.patch')
-rw-r--r-- | target/linux/generic/backport-5.4/610-v5.9-net-bridge-clear-bridge-s-private-skb-space-on-xmit.patch | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/target/linux/generic/backport-5.4/610-v5.9-net-bridge-clear-bridge-s-private-skb-space-on-xmit.patch b/target/linux/generic/backport-5.4/610-v5.9-net-bridge-clear-bridge-s-private-skb-space-on-xmit.patch new file mode 100644 index 0000000000..f1862943f8 --- /dev/null +++ b/target/linux/generic/backport-5.4/610-v5.9-net-bridge-clear-bridge-s-private-skb-space-on-xmit.patch @@ -0,0 +1,28 @@ +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> +--- + +--- 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 * + struct ethhdr *eth; + 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)) { |