Skip to content

Commit 0eefe2c

Browse files
viviendavem330
authored andcommitted
net: dsa: get tree before parsing ports
We will need a reference to the dsa_switch_tree when parsing a CPU port, so fetch it right after parsing the member and before parsing ports. Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent 6da2a94 commit 0eefe2c

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

net/dsa/dsa2.c

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -751,18 +751,10 @@ static int _dsa_register_switch(struct dsa_switch *ds)
751751
err = dsa_parse_member_dn(np, &tree, &index);
752752
if (err)
753753
return err;
754-
755-
err = dsa_parse_ports_of(np, ds);
756-
if (err)
757-
return err;
758754
} else {
759755
err = dsa_parse_member(pdata, &tree, &index);
760756
if (err)
761757
return err;
762-
763-
err = dsa_parse_ports(pdata, ds);
764-
if (err)
765-
return err;
766758
}
767759

768760
dst = dsa_tree_touch(tree);
@@ -773,6 +765,16 @@ static int _dsa_register_switch(struct dsa_switch *ds)
773765
ds->index = index;
774766
ds->cd = pdata;
775767

768+
if (np) {
769+
err = dsa_parse_ports_of(np, ds);
770+
if (err)
771+
return err;
772+
} else {
773+
err = dsa_parse_ports(pdata, ds);
774+
if (err)
775+
return err;
776+
}
777+
776778
/* Initialize the routing table */
777779
for (i = 0; i < DSA_MAX_SWITCHES; ++i)
778780
ds->rtable[i] = DSA_RTABLE_NONE;

0 commit comments

Comments
 (0)