Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 82373701 authored by Matan Barak's avatar Matan Barak Committed by David S. Miller
Browse files

IB/mlx4_ib: Adapt code to use caps.num_ports instead of a constant



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: default avatarMatan Barak <matanb@mellanox.com>
Signed-off-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 8798998c
Loading
Loading
Loading
Loading
+4 −4
Original line number Original line Diff line number Diff line
@@ -1546,7 +1546,7 @@ static int mlx4_ib_addr_event(int event, struct net_device *event_netdev,
	iboe = &ibdev->iboe;
	iboe = &ibdev->iboe;
	spin_lock(&iboe->lock);
	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) &&
		if ((netif_is_bond_master(real_dev) &&
		     (real_dev == iboe->masters[port - 1])) ||
		     (real_dev == iboe->masters[port - 1])) ||
		     (!netif_is_bond_master(real_dev) &&
		     (!netif_is_bond_master(real_dev) &&
@@ -1569,14 +1569,14 @@ static u8 mlx4_ib_get_dev_port(struct net_device *dev,


	iboe = &ibdev->iboe;
	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) &&
		if ((netif_is_bond_master(real_dev) &&
		     (real_dev == iboe->masters[port - 1])) ||
		     (real_dev == iboe->masters[port - 1])) ||
		     (!netif_is_bond_master(real_dev) &&
		     (!netif_is_bond_master(real_dev) &&
		     (real_dev == iboe->netdevs[port - 1])))
		     (real_dev == iboe->netdevs[port - 1])))
			break;
			break;


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




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


	/* IPv4 gids */
	/* IPv4 gids */