net: dsa: use ports list to find slave
Use the new ports list instead of iterating over switches and their ports when looking for a slave device from a given master interface. Signed-off-by: Vivien Didelot <vivien.didelot@gmail.com> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
This commit is contained in:
parent
b96ddf254b
commit
7b9a2f4bac
|
@ -104,25 +104,14 @@ static inline struct net_device *dsa_master_find_slave(struct net_device *dev,
|
||||||
{
|
{
|
||||||
struct dsa_port *cpu_dp = dev->dsa_ptr;
|
struct dsa_port *cpu_dp = dev->dsa_ptr;
|
||||||
struct dsa_switch_tree *dst = cpu_dp->dst;
|
struct dsa_switch_tree *dst = cpu_dp->dst;
|
||||||
struct dsa_switch *ds;
|
struct dsa_port *dp;
|
||||||
struct dsa_port *slave_port;
|
|
||||||
|
|
||||||
if (device < 0 || device >= DSA_MAX_SWITCHES)
|
list_for_each_entry(dp, &dst->ports, list)
|
||||||
return NULL;
|
if (dp->ds->index == device && dp->index == port &&
|
||||||
|
dp->type == DSA_PORT_TYPE_USER)
|
||||||
|
return dp->slave;
|
||||||
|
|
||||||
ds = dst->ds[device];
|
return NULL;
|
||||||
if (!ds)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
if (port < 0 || port >= ds->num_ports)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
slave_port = &ds->ports[port];
|
|
||||||
|
|
||||||
if (unlikely(slave_port->type != DSA_PORT_TYPE_USER))
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
return slave_port->slave;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* port.c */
|
/* port.c */
|
||||||
|
|
Loading…
Reference in New Issue