aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/mlx4/alias_GUID.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/infiniband/hw/mlx4/alias_GUID.c')
-rw-r--r--drivers/infiniband/hw/mlx4/alias_GUID.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/mlx4/alias_GUID.c b/drivers/infiniband/hw/mlx4/alias_GUID.c
index 0f00204d2ece..21cb41a60fe8 100644
--- a/drivers/infiniband/hw/mlx4/alias_GUID.c
+++ b/drivers/infiniband/hw/mlx4/alias_GUID.c
@@ -189,7 +189,7 @@ void mlx4_ib_notify_slaves_on_guid_change(struct mlx4_ib_dev *dev,
189{ 189{
190 int i; 190 int i;
191 u64 guid_indexes; 191 u64 guid_indexes;
192 int slave_id; 192 int slave_id, slave_port;
193 enum slave_port_state new_state; 193 enum slave_port_state new_state;
194 enum slave_port_state prev_state; 194 enum slave_port_state prev_state;
195 __be64 tmp_cur_ag, form_cache_ag; 195 __be64 tmp_cur_ag, form_cache_ag;
@@ -217,6 +217,11 @@ void mlx4_ib_notify_slaves_on_guid_change(struct mlx4_ib_dev *dev,
217 slave_id = (block_num * NUM_ALIAS_GUID_IN_REC) + i ; 217 slave_id = (block_num * NUM_ALIAS_GUID_IN_REC) + i ;
218 if (slave_id >= dev->dev->persist->num_vfs + 1) 218 if (slave_id >= dev->dev->persist->num_vfs + 1)
219 return; 219 return;
220
221 slave_port = mlx4_phys_to_slave_port(dev->dev, slave_id, port_num);
222 if (slave_port < 0) /* this port isn't available for the VF */
223 continue;
224
220 tmp_cur_ag = *(__be64 *)&p_data[i * GUID_REC_SIZE]; 225 tmp_cur_ag = *(__be64 *)&p_data[i * GUID_REC_SIZE];
221 form_cache_ag = get_cached_alias_guid(dev, port_num, 226 form_cache_ag = get_cached_alias_guid(dev, port_num,
222 (NUM_ALIAS_GUID_IN_REC * block_num) + i); 227 (NUM_ALIAS_GUID_IN_REC * block_num) + i);