IB/mlx4: Don't return an invalid speed when a port is down
When the IB port is down, the active_speed value returned by the MAD_IFC command is seven (7) which isn't among the defined IB speeds in enum ib_port_speed, and this invalid speed value is passed up to higher layers or applications who do port query. Fix that by setting the speed to be SDR -- the lowest possible -- when the port is down. Signed-off-by: Roland Dreier <roland@purestorage.com>
This commit is contained in:
parent
dd775ae254
commit
d2ef406866
1 changed files with 5 additions and 0 deletions
|
@ -253,6 +253,11 @@ static int ib_link_query_port(struct ib_device *ibdev, u8 port,
|
|||
if (out_mad->data[15] & 0x1)
|
||||
props->active_speed = IB_SPEED_FDR10;
|
||||
}
|
||||
|
||||
/* Avoid wrong speed value returned by FW if the IB link is down. */
|
||||
if (props->state == IB_PORT_DOWN)
|
||||
props->active_speed = IB_SPEED_SDR;
|
||||
|
||||
out:
|
||||
kfree(in_mad);
|
||||
kfree(out_mad);
|
||||
|
|
Loading…
Reference in a new issue