]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 14 May 2020 09:47:20 +0000 (11:47 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 14 May 2020 09:47:20 +0000 (11:47 +0200)
added patches:
net-dsa-do-not-make-user-port-errors-fatal.patch

queue-5.4/net-dsa-do-not-make-user-port-errors-fatal.patch [new file with mode: 0644]

diff --git a/queue-5.4/net-dsa-do-not-make-user-port-errors-fatal.patch b/queue-5.4/net-dsa-do-not-make-user-port-errors-fatal.patch
new file mode 100644 (file)
index 0000000..48ac54c
--- /dev/null
@@ -0,0 +1,48 @@
+From 86f8b1c01a0a537a73d2996615133be63cdf75db Mon Sep 17 00:00:00 2001
+From: Florian Fainelli <f.fainelli@gmail.com>
+Date: Sun, 3 May 2020 20:50:57 -0700
+Subject: net: dsa: Do not make user port errors fatal
+
+From: Florian Fainelli <f.fainelli@gmail.com>
+
+commit 86f8b1c01a0a537a73d2996615133be63cdf75db upstream.
+
+Prior to 1d27732f411d ("net: dsa: setup and teardown ports"), we would
+not treat failures to set-up an user port as fatal, but after this
+commit we would, which is a regression for some systems where interfaces
+may be declared in the Device Tree, but the underlying hardware may not
+be present (pluggable daughter cards for instance).
+
+Fixes: 1d27732f411d ("net: dsa: setup and teardown ports")
+Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
+Reviewed-by: Andrew Lunn <andrew@lunn.ch>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+
+---
+ net/dsa/dsa2.c |    8 +-------
+ 1 file changed, 1 insertion(+), 7 deletions(-)
+
+--- a/net/dsa/dsa2.c
++++ b/net/dsa/dsa2.c
+@@ -461,18 +461,12 @@ static int dsa_tree_setup_switches(struc
+                       err = dsa_port_setup(dp);
+                       if (err)
+-                              goto ports_teardown;
++                              continue;
+               }
+       }
+       return 0;
+-ports_teardown:
+-      for (i = 0; i < port; i++)
+-              dsa_port_teardown(&ds->ports[i]);
+-
+-      dsa_switch_teardown(ds);
+-
+ switch_teardown:
+       for (i = 0; i < device; i++) {
+               ds = dst->ds[i];