ds->edev_master is used in a lot places and if we can't populate,
because the Ethernet device wasn't found, we should abort instead of
crashing later on.

Signed-off-by: Ahmad Fatoum <[email protected]>
---
 drivers/net/dsa.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/net/dsa.c b/drivers/net/dsa.c
index 793bbbb4f18f..6a3b829e15a4 100644
--- a/drivers/net/dsa.c
+++ b/drivers/net/dsa.c
@@ -400,8 +400,11 @@ static int dsa_switch_parse_ports_of(struct dsa_switch *ds,
                }
 
                master = of_parse_phandle(port, "ethernet", 0);
-               if (master)
-                       dsa_switch_register_master(ds, port, master, reg);
+               if (master) {
+                       ret = dsa_switch_register_master(ds, port, master, reg);
+                       if (ret)
+                               return ret;
+               }
        }
 
        /* Now we can register regular switch ports  */
-- 
2.30.2


Reply via email to