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

Commit d2ef4068 authored by Or Gerlitz's avatar Or Gerlitz Committed by Roland Dreier
Browse files

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: default avatarRoland Dreier <roland@purestorage.com>
parent dd775ae2
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -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);