summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/mellanox/mlx4/main.c
diff options
context:
space:
mode:
authorJack Morgenstein2014-03-12 11:00:39 +0100
committerDavid S. Miller2014-03-12 20:57:14 +0100
commitb6ffaeffaea4d92f05f5ba1ef54df407cb7c8517 (patch)
tree36ce4558756c07bdcc47a8ad6a6a3208f4e1fe05 /drivers/net/ethernet/mellanox/mlx4/main.c
parentmlx4_core: For RoCE, allow slaves to set the GID entry at that slave's index (diff)
downloadkernel-qcow2-linux-b6ffaeffaea4d92f05f5ba1ef54df407cb7c8517.tar.gz
kernel-qcow2-linux-b6ffaeffaea4d92f05f5ba1ef54df407cb7c8517.tar.xz
kernel-qcow2-linux-b6ffaeffaea4d92f05f5ba1ef54df407cb7c8517.zip
mlx4: In RoCE allow guests to have multiple GIDS
The GIDs are statically distributed, as follows: PF: gets 16 GIDs VFs: Remaining GIDS are divided evenly between VFs activated by the driver. If the division is not even, lower-numbered VFs get an extra GID. For an IB interface, the number of gids per guest remains as before: one gid per guest. 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.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx4/main.c b/drivers/net/ethernet/mellanox/mlx4/main.c
index 979ea4364efb..4c441aa83016 100644
--- a/drivers/net/ethernet/mellanox/mlx4/main.c
+++ b/drivers/net/ethernet/mellanox/mlx4/main.c
@@ -1462,7 +1462,11 @@ static void mlx4_parav_master_pf_caps(struct mlx4_dev *dev)
int i;
for (i = 1; i <= dev->caps.num_ports; i++) {
- dev->caps.gid_table_len[i] = 1;
+ if (dev->caps.port_type[i] == MLX4_PORT_TYPE_ETH)
+ dev->caps.gid_table_len[i] =
+ mlx4_get_slave_num_gids(dev, 0);
+ else
+ dev->caps.gid_table_len[i] = 1;
dev->caps.pkey_table_len[i] =
dev->phys_caps.pkey_phys_table_len[i] - 1;
}