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@xxxxxxxxxxxxxx> --- 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