Skip to content

Commit

Permalink
net: dsa: get tree before parsing ports
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
vivien authored and davem330 committed Nov 5, 2017
1 parent 6da2a94 commit 0eefe2c
Showing 1 changed file with 10 additions and 8 deletions.
18 changes: 10 additions & 8 deletions net/dsa/dsa2.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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;
Expand Down

0 comments on commit 0eefe2c

Please sign in to comment.