diff options
author | Ido Schimmel <idosch@mellanox.com> | 2016-06-20 23:04:16 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-06-21 05:02:50 -0400 |
commit | 6381b3a85feba85bba671a2f1299550e43a7abb1 (patch) | |
tree | 79dd8947d37919c052b120b7b6f93148d8618c80 | |
parent | 14d39461b3f4f0f827db64a2f1fc7bc44c452684 (diff) |
mlxsw: spectrum: Check if port is vPort using its VID
When L3 interfaces will be introduced a vPort won't necessarily have a
FID assigned to it. This can happen if it's not member in a bridge (in
which case it's assigned a vFID) or doesn't have an IP address (in which
case it's assigned an rFID).
Therefore, instead check the VID parameter to test whether a port is a
vPort or not.
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/ethernet/mellanox/mlxsw/spectrum.h | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum.h b/drivers/net/ethernet/mellanox/mlxsw/spectrum.h index d6cf6de60860..1d3441930a5a 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum.h +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum.h @@ -259,12 +259,6 @@ mlxsw_sp_port_lagged_get(struct mlxsw_sp *mlxsw_sp, u16 lag_id, u8 port_index) return mlxsw_sp_port && mlxsw_sp_port->lagged ? mlxsw_sp_port : NULL; } -static inline bool -mlxsw_sp_port_is_vport(const struct mlxsw_sp_port *mlxsw_sp_port) -{ - return mlxsw_sp_port->vport.f; -} - static inline struct net_device * mlxsw_sp_vport_br_get(const struct mlxsw_sp_port *mlxsw_sp_vport) { @@ -277,6 +271,14 @@ mlxsw_sp_vport_vid_get(const struct mlxsw_sp_port *mlxsw_sp_vport) return mlxsw_sp_vport->vport.vid; } +static inline bool +mlxsw_sp_port_is_vport(const struct mlxsw_sp_port *mlxsw_sp_port) +{ + u16 vid = mlxsw_sp_vport_vid_get(mlxsw_sp_port); + + return vid != 0; +} + static inline u16 mlxsw_sp_vport_fid_get(const struct mlxsw_sp_port *mlxsw_sp_vport) { |