|
@@ -751,18 +751,10 @@ static int _dsa_register_switch(struct dsa_switch *ds)
|
|
|
err = dsa_parse_member_dn(np, &tree, &index);
|
|
|
if (err)
|
|
|
return err;
|
|
|
-
|
|
|
- err = dsa_parse_ports_of(np, ds);
|
|
|
- if (err)
|
|
|
- return err;
|
|
|
} else {
|
|
|
err = dsa_parse_member(pdata, &tree, &index);
|
|
|
if (err)
|
|
|
return err;
|
|
|
-
|
|
|
- err = dsa_parse_ports(pdata, ds);
|
|
|
- if (err)
|
|
|
- return err;
|
|
|
}
|
|
|
|
|
|
dst = dsa_tree_touch(tree);
|
|
@@ -773,6 +765,16 @@ static int _dsa_register_switch(struct dsa_switch *ds)
|
|
|
ds->index = index;
|
|
|
ds->cd = pdata;
|
|
|
|
|
|
+ if (np) {
|
|
|
+ err = dsa_parse_ports_of(np, ds);
|
|
|
+ if (err)
|
|
|
+ return err;
|
|
|
+ } else {
|
|
|
+ err = dsa_parse_ports(pdata, ds);
|
|
|
+ if (err)
|
|
|
+ return err;
|
|
|
+ }
|
|
|
+
|
|
|
/* Initialize the routing table */
|
|
|
for (i = 0; i < DSA_MAX_SWITCHES; ++i)
|
|
|
ds->rtable[i] = DSA_RTABLE_NONE;
|