diff options
Diffstat (limited to 'drivers/infiniband')
-rw-r--r-- | drivers/infiniband/hw/mlx4/main.c | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/drivers/infiniband/hw/mlx4/main.c b/drivers/infiniband/hw/mlx4/main.c index 6ff6bdf28a3a..abce99ed565f 100644 --- a/drivers/infiniband/hw/mlx4/main.c +++ b/drivers/infiniband/hw/mlx4/main.c | |||
@@ -225,21 +225,18 @@ static int ib_link_query_port(struct ib_device *ibdev, u8 port, | |||
225 | 225 | ||
226 | /* If reported active speed is QDR, check if is FDR-10 */ | 226 | /* If reported active speed is QDR, check if is FDR-10 */ |
227 | if (props->active_speed == IB_SPEED_QDR) { | 227 | if (props->active_speed == IB_SPEED_QDR) { |
228 | if (to_mdev(ibdev)->dev->caps.ext_port_cap[port] & | 228 | init_query_mad(in_mad); |
229 | MLX_EXT_PORT_CAP_FLAG_EXTENDED_PORT_INFO) { | 229 | in_mad->attr_id = MLX4_ATTR_EXTENDED_PORT_INFO; |
230 | init_query_mad(in_mad); | 230 | in_mad->attr_mod = cpu_to_be32(port); |
231 | in_mad->attr_id = MLX4_ATTR_EXTENDED_PORT_INFO; | ||
232 | in_mad->attr_mod = cpu_to_be32(port); | ||
233 | |||
234 | err = mlx4_MAD_IFC(to_mdev(ibdev), 1, 1, port, | ||
235 | NULL, NULL, in_mad, out_mad); | ||
236 | if (err) | ||
237 | return err; | ||
238 | 231 | ||
239 | /* Checking LinkSpeedActive for FDR-10 */ | 232 | err = mlx4_MAD_IFC(to_mdev(ibdev), 1, 1, port, |
240 | if (out_mad->data[15] & 0x1) | 233 | NULL, NULL, in_mad, out_mad); |
241 | props->active_speed = IB_SPEED_FDR10; | 234 | if (err) |
242 | } | 235 | return err; |
236 | |||
237 | /* Checking LinkSpeedActive for FDR-10 */ | ||
238 | if (out_mad->data[15] & 0x1) | ||
239 | props->active_speed = IB_SPEED_FDR10; | ||
243 | } | 240 | } |
244 | 241 | ||
245 | return 0; | 242 | return 0; |