mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 15:27:29 +00:00
net: dsa: Remove master_netdev and use dst->cpu_dp->netdev
In preparation for supporting multiple CPU ports, remove dst->master_netdev and ds->master_netdev and replace them with only one instance of the common object we have for a port: struct dsa_port::netdev. ds->master_netdev is currently write only and would be helpful in the case where we have two switches, both with CPU ports, and also connected within each other, which the multi-CPU port patch series would address. While at it, introduce a helper function used in net/dsa/slave.c to immediately get a reference on the master network device called dsa_master_netdev(). Reviewed-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
38b6ec5008
commit
6d3c8c0dd8
8 changed files with 40 additions and 48 deletions
|
@ -337,7 +337,7 @@ static int dsa_ds_apply(struct dsa_switch_tree *dst, struct dsa_switch *ds)
|
|||
return err;
|
||||
|
||||
if (ds->ops->set_addr) {
|
||||
err = ds->ops->set_addr(ds, dst->master_netdev->dev_addr);
|
||||
err = ds->ops->set_addr(ds, dst->cpu_dp->netdev->dev_addr);
|
||||
if (err < 0)
|
||||
return err;
|
||||
}
|
||||
|
@ -444,7 +444,7 @@ static int dsa_dst_apply(struct dsa_switch_tree *dst)
|
|||
* sent to the tag format's receive function.
|
||||
*/
|
||||
wmb();
|
||||
dst->master_netdev->dsa_ptr = dst;
|
||||
dst->cpu_dp->netdev->dsa_ptr = dst;
|
||||
dst->applied = true;
|
||||
|
||||
return 0;
|
||||
|
@ -458,7 +458,7 @@ static void dsa_dst_unapply(struct dsa_switch_tree *dst)
|
|||
if (!dst->applied)
|
||||
return;
|
||||
|
||||
dst->master_netdev->dsa_ptr = NULL;
|
||||
dst->cpu_dp->netdev->dsa_ptr = NULL;
|
||||
|
||||
/* If we used a tagging format that doesn't have an ethertype
|
||||
* field, make sure that all packets from this point get sent
|
||||
|
@ -504,14 +504,10 @@ static int dsa_cpu_parse(struct dsa_port *port, u32 index,
|
|||
if (!ethernet_dev)
|
||||
return -EPROBE_DEFER;
|
||||
|
||||
if (!ds->master_netdev)
|
||||
ds->master_netdev = ethernet_dev;
|
||||
|
||||
if (!dst->master_netdev)
|
||||
dst->master_netdev = ethernet_dev;
|
||||
|
||||
if (!dst->cpu_dp)
|
||||
if (!dst->cpu_dp) {
|
||||
dst->cpu_dp = port;
|
||||
dst->cpu_dp->netdev = ethernet_dev;
|
||||
}
|
||||
|
||||
tag_protocol = ds->ops->get_tag_protocol(ds);
|
||||
dst->tag_ops = dsa_resolve_tag_protocol(tag_protocol);
|
||||
|
@ -578,7 +574,7 @@ static int dsa_dst_parse(struct dsa_switch_tree *dst)
|
|||
return err;
|
||||
}
|
||||
|
||||
if (!dst->master_netdev) {
|
||||
if (!dst->cpu_dp->netdev) {
|
||||
pr_warn("Tree has no master device\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue