kernel: bump 5.4 to 5.4.156
[openwrt/staging/wigyori.git] / target / linux / generic / backport-5.4 / 790-v5.7-net-switchdev-do-not-propagate-bridge-updates-across.patch
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 (file)
index bc8014b..0000000
+++ /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)