mlxsw: spectrum: Extend port_orig_get for bridge devices
The function mlxsw_sp_port_orig_get returns the vport from the physical port if needed, based on the original device. This patch addresses the case where the original device is a bridge. If it is vlan unaware bridge, it returns the matching vport. If it is vlan aware bridge, there is no matching vport, and it returns the original port. Signed-off-by: Nogah Frankel <nogahf@mellanox.com> Signed-off-by: Yotam Gigi <yotamg@mellanox.com> Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
8ecd4591e7
commit
1e5d94327d
1 changed files with 13 additions and 0 deletions
|
@ -71,8 +71,21 @@ mlxsw_sp_port_orig_get(struct net_device *dev,
|
|||
struct mlxsw_sp_port *mlxsw_sp_port)
|
||||
{
|
||||
struct mlxsw_sp_port *mlxsw_sp_vport;
|
||||
struct mlxsw_sp_fid *fid;
|
||||
u16 vid;
|
||||
|
||||
if (netif_is_bridge_master(dev)) {
|
||||
fid = mlxsw_sp_vfid_find(mlxsw_sp_port->mlxsw_sp,
|
||||
dev);
|
||||
if (fid) {
|
||||
mlxsw_sp_vport =
|
||||
mlxsw_sp_port_vport_find_by_fid(mlxsw_sp_port,
|
||||
fid->fid);
|
||||
WARN_ON(!mlxsw_sp_vport);
|
||||
return mlxsw_sp_vport;
|
||||
}
|
||||
}
|
||||
|
||||
if (!is_vlan_dev(dev))
|
||||
return mlxsw_sp_port;
|
||||
|
||||
|
|
Loading…
Reference in a new issue