aboutsummaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorMichael Walle2021-02-24 17:40:39 +0100
committerPriyanka Jain2021-03-05 10:25:42 +0530
commita02dcbbb5a8e24a3f6cd3e7f158e1953b82d5e2e (patch)
tree31e1767fa9851bd260ad6aa47fcb8c9df4996a66 /net
parent6ce33e228859126c87a2027d39b16e5c1b2292e1 (diff)
net: dsa: return early if there is no master
It doesn't make sense to have DSA without a master port. Error out early if there is no master port. Fixes: fc054d563bfb ("net: Introduce DSA class for Ethernet switches") Signed-off-by: Michael Walle <michael@walle.cc> Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com>
Diffstat (limited to 'net')
-rw-r--r--net/dsa-uclass.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/net/dsa-uclass.c b/net/dsa-uclass.c
index 2ce9ddb90d2..88a8ea93520 100644
--- a/net/dsa-uclass.c
+++ b/net/dsa-uclass.c
@@ -280,6 +280,10 @@ static int dsa_port_probe(struct udevice *pdev)
if (!port_pdata->phy)
return -ENODEV;
+ master = dsa_get_master(dev);
+ if (!master)
+ return -ENODEV;
+
/*
* Inherit port's hwaddr from the DSA master, unless the port already
* has a unique MAC address specified in the environment.
@@ -288,10 +292,6 @@ static int dsa_port_probe(struct udevice *pdev)
if (!is_zero_ethaddr(env_enetaddr))
return 0;
- master = dsa_get_master(dev);
- if (!master)
- return 0;
-
master_pdata = dev_get_plat(master);
eth_pdata = dev_get_plat(pdev);
memcpy(eth_pdata->enetaddr, master_pdata->enetaddr, ARP_HLEN);