diff options
author | Jack Morgenstein <jackm@dev.mellanox.co.il> | 2014-05-27 09:26:38 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-05-30 16:57:52 -0700 |
commit | 111c6094bd7731cb1a415b2ea7d450fa23d6857c (patch) | |
tree | 2f56a2490bdf14350b36dead3a521e087bbea09c /drivers/net/ethernet/mellanox/mlx4/main.c | |
parent | 09271db6e0f2b282f9bfe0ab6e8b644a93237c5e (diff) | |
download | linux-111c6094bd7731cb1a415b2ea7d450fa23d6857c.tar.gz linux-111c6094bd7731cb1a415b2ea7d450fa23d6857c.tar.bz2 linux-111c6094bd7731cb1a415b2ea7d450fa23d6857c.zip |
net/mlx4_core: Reset RoCE VF gids when guest driver goes down
Reset the GIDs assigned to a VF in the port RoCE GID table when
that guest goes down (either crashes or goes down cleanly).
As part of this fix, we refactor the RoCE gid table driver copy,
moving it to the mlx4_port_info structure (together with the MAC
and VLAN tables).
As with the MAC and VLAN tables, we now use a mutex per port
for the GID table so that modifying the driver copy and
modifying the firmware copy of a port GID table becomes an
atomic operation (thus avoiding driver-copy/FW-copy mismatches).
Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlx4/main.c')
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx4/main.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx4/main.c b/drivers/net/ethernet/mellanox/mlx4/main.c index 7cf9dadcb471..c187d748115f 100644 --- a/drivers/net/ethernet/mellanox/mlx4/main.c +++ b/drivers/net/ethernet/mellanox/mlx4/main.c @@ -2044,6 +2044,7 @@ static int mlx4_init_port_info(struct mlx4_dev *dev, int port) if (!mlx4_is_slave(dev)) { mlx4_init_mac_table(dev, &info->mac_table); mlx4_init_vlan_table(dev, &info->vlan_table); + mlx4_init_roce_gid_table(dev, &info->gid_table); info->base_qpn = mlx4_get_base_qpn(dev, port); } |