mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-06 06:21:31 +00:00
net: dsa: use ports list to setup multiple master devices
Now that we have a potential list of CPU ports, make use of it instead of only configuring the master device of an unique CPU port. Signed-off-by: Vivien Didelot <vivien.didelot@gmail.com> Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
This commit is contained in:
parent
764b7e6242
commit
0cfec588ec
1 changed files with 15 additions and 7 deletions
|
@ -493,19 +493,27 @@ static void dsa_tree_teardown_switches(struct dsa_switch_tree *dst)
|
|||
|
||||
static int dsa_tree_setup_master(struct dsa_switch_tree *dst)
|
||||
{
|
||||
struct dsa_port *cpu_dp = dst->cpu_dp;
|
||||
struct net_device *master = cpu_dp->master;
|
||||
struct dsa_port *dp;
|
||||
int err;
|
||||
|
||||
/* DSA currently supports a single pair of CPU port and master device */
|
||||
return dsa_master_setup(master, cpu_dp);
|
||||
list_for_each_entry(dp, &dst->ports, list) {
|
||||
if (dsa_port_is_cpu(dp)) {
|
||||
err = dsa_master_setup(dp->master, dp);
|
||||
if (err)
|
||||
return err;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void dsa_tree_teardown_master(struct dsa_switch_tree *dst)
|
||||
{
|
||||
struct dsa_port *cpu_dp = dst->cpu_dp;
|
||||
struct net_device *master = cpu_dp->master;
|
||||
struct dsa_port *dp;
|
||||
|
||||
return dsa_master_teardown(master);
|
||||
list_for_each_entry(dp, &dst->ports, list)
|
||||
if (dsa_port_is_cpu(dp))
|
||||
dsa_master_teardown(dp->master);
|
||||
}
|
||||
|
||||
static int dsa_tree_setup(struct dsa_switch_tree *dst)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue