Skip to content

Commit

Permalink
IB/mlx4_ib: Adapt code to use caps.num_ports instead of a constant
Browse files Browse the repository at this point in the history
Some code in the mlx4 IB driver stack assumed MLX4_MAX_PORTS ports.

Instead, we should only loop until the number of actual ports in i
the device, which is stored in dev->caps.num_ports.

Signed-off-by: Matan Barak <matanb@mellanox.com>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Matan Barak authored and David S. Miller committed Mar 20, 2014
1 parent 8798998 commit 8237370
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions drivers/infiniband/hw/mlx4/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1546,7 +1546,7 @@ static int mlx4_ib_addr_event(int event, struct net_device *event_netdev,
iboe = &ibdev->iboe;
spin_lock(&iboe->lock);

for (port = 1; port <= MLX4_MAX_PORTS; ++port)
for (port = 1; port <= ibdev->dev->caps.num_ports; ++port)
if ((netif_is_bond_master(real_dev) &&
(real_dev == iboe->masters[port - 1])) ||
(!netif_is_bond_master(real_dev) &&
Expand All @@ -1569,14 +1569,14 @@ static u8 mlx4_ib_get_dev_port(struct net_device *dev,

iboe = &ibdev->iboe;

for (port = 1; port <= MLX4_MAX_PORTS; ++port)
for (port = 1; port <= ibdev->dev->caps.num_ports; ++port)
if ((netif_is_bond_master(real_dev) &&
(real_dev == iboe->masters[port - 1])) ||
(!netif_is_bond_master(real_dev) &&
(real_dev == iboe->netdevs[port - 1])))
break;

if ((port == 0) || (port > MLX4_MAX_PORTS))
if ((port == 0) || (port > ibdev->dev->caps.num_ports))
return 0;
else
return port;
Expand Down Expand Up @@ -1626,7 +1626,7 @@ static void mlx4_ib_get_dev_addr(struct net_device *dev,
union ib_gid gid;


if ((port == 0) || (port > MLX4_MAX_PORTS))
if ((port == 0) || (port > ibdev->dev->caps.num_ports))
return;

/* IPv4 gids */
Expand Down

0 comments on commit 8237370

Please sign in to comment.