diff options
author | Ahmad Fatoum <a.fatoum@pengutronix.de> | 2023-03-15 15:35:22 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2023-03-16 09:41:52 +0100 |
commit | 6b2232b64f0e33ff21e36d87dd94bcf39dc17b01 (patch) | |
tree | 0535504cc9b491b168be49770332155c69cbcb95 /drivers | |
parent | 31d537e314ea0737b69010389a72a5ad842fe061 (diff) | |
download | barebox-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.c | 7 |
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 */ |