diff options
Diffstat (limited to 'drivers/infiniband/hw/mlx4/alias_GUID.c')
-rw-r--r-- | drivers/infiniband/hw/mlx4/alias_GUID.c | 7 |
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); |