diff options
Diffstat (limited to 'target/linux/generic/backport-5.4/790-v5.7-net-switchdev-do-not-propagate-bridge-updates-across.patch')
-rw-r--r-- | target/linux/generic/backport-5.4/790-v5.7-net-switchdev-do-not-propagate-bridge-updates-across.patch | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/target/linux/generic/backport-5.4/790-v5.7-net-switchdev-do-not-propagate-bridge-updates-across.patch b/target/linux/generic/backport-5.4/790-v5.7-net-switchdev-do-not-propagate-bridge-updates-across.patch deleted file mode 100644 index bc8014b772..0000000000 --- a/target/linux/generic/backport-5.4/790-v5.7-net-switchdev-do-not-propagate-bridge-updates-across.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 07c6f9805f12f1bb538ef165a092b300350384aa Mon Sep 17 00:00:00 2001 -From: Russell King <rmk+kernel@armlinux.org.uk> -Date: Wed, 26 Feb 2020 17:14:21 +0000 -Subject: [PATCH] net: switchdev: do not propagate bridge updates across - bridges - -When configuring a tree of independent bridges, propagating changes -from the upper bridge across a bridge master to the lower bridge -ports brings surprises. - -For example, a lower bridge may have vlan filtering enabled. It -may have a vlan interface attached to the bridge master, which may -then be incorporated into another bridge. As soon as the lower -bridge vlan interface is attached to the upper bridge, the lower -bridge has vlan filtering disabled. - -This occurs because switchdev recursively applies its changes to -all lower devices no matter what. - -Reviewed-by: Ido Schimmel <idosch@mellanox.com> -Tested-by: Ido Schimmel <idosch@mellanox.com> -Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk> -Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> -Signed-off-by: David S. Miller <davem@davemloft.net> ---- - net/switchdev/switchdev.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - ---- a/net/switchdev/switchdev.c -+++ b/net/switchdev/switchdev.c -@@ -476,6 +476,9 @@ static int __switchdev_handle_port_obj_a - * necessary to go through this helper. - */ - netdev_for_each_lower_dev(dev, lower_dev, iter) { -+ if (netif_is_bridge_master(lower_dev)) -+ continue; -+ - err = __switchdev_handle_port_obj_add(lower_dev, port_obj_info, - check_cb, add_cb); - if (err && err != -EOPNOTSUPP) -@@ -528,6 +531,9 @@ static int __switchdev_handle_port_obj_d - * necessary to go through this helper. - */ - netdev_for_each_lower_dev(dev, lower_dev, iter) { -+ if (netif_is_bridge_master(lower_dev)) -+ continue; -+ - err = __switchdev_handle_port_obj_del(lower_dev, port_obj_info, - check_cb, del_cb); - if (err && err != -EOPNOTSUPP) -@@ -579,6 +585,9 @@ static int __switchdev_handle_port_attr_ - * necessary to go through this helper. - */ - netdev_for_each_lower_dev(dev, lower_dev, iter) { -+ if (netif_is_bridge_master(lower_dev)) -+ continue; -+ - err = __switchdev_handle_port_attr_set(lower_dev, port_attr_info, - check_cb, set_cb); - if (err && err != -EOPNOTSUPP) |