summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorAhmad Fatoum <a.fatoum@pengutronix.de>2023-03-15 15:35:22 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2023-03-16 09:41:52 +0100
commit6b2232b64f0e33ff21e36d87dd94bcf39dc17b01 (patch)
tree0535504cc9b491b168be49770332155c69cbcb95 /drivers
parent31d537e314ea0737b69010389a72a5ad842fe061 (diff)
downloadbarebox-6b2232b64f0e33ff21e36d87dd94bcf39dc17b01.tar.gz
net: dsa: abort registration when master is unresolvable
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 <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20230315143522.1512531-1-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/dsa.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/net/dsa.c b/drivers/net/dsa.c
index 793bbbb4f1..6a3b829e15 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 */