diff options
author | Vivien Didelot <vivien.didelot@gmail.com> | 2019-10-30 22:09:17 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-10-31 14:26:38 -0700 |
commit | 8e5cb84c67e085ad4d8005dcecba3201f2b54504 (patch) | |
tree | 1fc9da7a6c7508cf8daba2021ca91513ce8e9886 /net/dsa/dsa2.c | |
parent | 9c8ad1ab66b577526a4c89e4a222e0fac431a2d6 (diff) | |
download | linux-8e5cb84c67e085ad4d8005dcecba3201f2b54504.tar.gz linux-8e5cb84c67e085ad4d8005dcecba3201f2b54504.tar.bz2 linux-8e5cb84c67e085ad4d8005dcecba3201f2b54504.zip |
net: dsa: remove tree functions related to switches
The DSA fabric setup code has been simplified a lot so get rid of
the dsa_tree_remove_switch, dsa_tree_add_switch and dsa_switch_add
helpers, and keep the code simple with only the dsa_switch_probe and
dsa_switch_remove functions.
Signed-off-by: Vivien Didelot <vivien.didelot@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/dsa/dsa2.c')
-rw-r--r-- | net/dsa/dsa2.c | 43 |
1 files changed, 10 insertions, 33 deletions
diff --git a/net/dsa/dsa2.c b/net/dsa/dsa2.c index 92e71b12b729..371f15042dad 100644 --- a/net/dsa/dsa2.c +++ b/net/dsa/dsa2.c @@ -573,29 +573,6 @@ static void dsa_tree_teardown(struct dsa_switch_tree *dst) dst->setup = false; } -static void dsa_tree_remove_switch(struct dsa_switch_tree *dst, - unsigned int index) -{ - dsa_tree_teardown(dst); - - dsa_tree_put(dst); -} - -static int dsa_tree_add_switch(struct dsa_switch_tree *dst, - struct dsa_switch *ds) -{ - int err; - - dsa_tree_get(dst); - - err = dsa_tree_setup(dst); - if (err) { - dsa_tree_put(dst); - } - - return err; -} - static struct dsa_port *dsa_port_touch(struct dsa_switch *ds, int index) { struct dsa_switch_tree *dst = ds->dst; @@ -846,15 +823,9 @@ static int dsa_switch_parse(struct dsa_switch *ds, struct dsa_chip_data *cd) return dsa_switch_parse_ports(ds, cd); } -static int dsa_switch_add(struct dsa_switch *ds) -{ - struct dsa_switch_tree *dst = ds->dst; - - return dsa_tree_add_switch(dst, ds); -} - static int dsa_switch_probe(struct dsa_switch *ds) { + struct dsa_switch_tree *dst; struct dsa_chip_data *pdata; struct device_node *np; int err; @@ -878,7 +849,13 @@ static int dsa_switch_probe(struct dsa_switch *ds) if (err) return err; - return dsa_switch_add(ds); + dst = ds->dst; + dsa_tree_get(dst); + err = dsa_tree_setup(dst); + if (err) + dsa_tree_put(dst); + + return err; } int dsa_register_switch(struct dsa_switch *ds) @@ -897,7 +874,6 @@ EXPORT_SYMBOL_GPL(dsa_register_switch); static void dsa_switch_remove(struct dsa_switch *ds) { struct dsa_switch_tree *dst = ds->dst; - unsigned int index = ds->index; struct dsa_port *dp, *next; list_for_each_entry_safe(dp, next, &dst->ports, list) { @@ -905,7 +881,8 @@ static void dsa_switch_remove(struct dsa_switch *ds) kfree(dp); } - dsa_tree_remove_switch(dst, index); + dsa_tree_teardown(dst); + dsa_tree_put(dst); } void dsa_unregister_switch(struct dsa_switch *ds) |