|
@@ -1094,31 +1094,26 @@ enum mlx5_ib_width {
|
|
|
MLX5_IB_WIDTH_12X = 1 << 4
|
|
|
};
|
|
|
|
|
|
-static int translate_active_width(struct ib_device *ibdev, u8 active_width,
|
|
|
+static void translate_active_width(struct ib_device *ibdev, u8 active_width,
|
|
|
u8 *ib_width)
|
|
|
{
|
|
|
struct mlx5_ib_dev *dev = to_mdev(ibdev);
|
|
|
- int err = 0;
|
|
|
|
|
|
- if (active_width & MLX5_IB_WIDTH_1X) {
|
|
|
+ if (active_width & MLX5_IB_WIDTH_1X)
|
|
|
*ib_width = IB_WIDTH_1X;
|
|
|
- } else if (active_width & MLX5_IB_WIDTH_2X) {
|
|
|
- mlx5_ib_dbg(dev, "active_width %d is not supported by IB spec\n",
|
|
|
- (int)active_width);
|
|
|
- err = -EINVAL;
|
|
|
- } else if (active_width & MLX5_IB_WIDTH_4X) {
|
|
|
+ else if (active_width & MLX5_IB_WIDTH_4X)
|
|
|
*ib_width = IB_WIDTH_4X;
|
|
|
- } else if (active_width & MLX5_IB_WIDTH_8X) {
|
|
|
+ else if (active_width & MLX5_IB_WIDTH_8X)
|
|
|
*ib_width = IB_WIDTH_8X;
|
|
|
- } else if (active_width & MLX5_IB_WIDTH_12X) {
|
|
|
+ else if (active_width & MLX5_IB_WIDTH_12X)
|
|
|
*ib_width = IB_WIDTH_12X;
|
|
|
- } else {
|
|
|
- mlx5_ib_dbg(dev, "Invalid active_width %d\n",
|
|
|
+ else {
|
|
|
+ mlx5_ib_dbg(dev, "Invalid active_width %d, setting width to default value: 4x\n",
|
|
|
(int)active_width);
|
|
|
- err = -EINVAL;
|
|
|
+ *ib_width = IB_WIDTH_4X;
|
|
|
}
|
|
|
|
|
|
- return err;
|
|
|
+ return;
|
|
|
}
|
|
|
|
|
|
static int mlx5_mtu_to_ib_mtu(int mtu)
|
|
@@ -1225,10 +1220,8 @@ static int mlx5_query_hca_port(struct ib_device *ibdev, u8 port,
|
|
|
if (err)
|
|
|
goto out;
|
|
|
|
|
|
- err = translate_active_width(ibdev, ib_link_width_oper,
|
|
|
- &props->active_width);
|
|
|
- if (err)
|
|
|
- goto out;
|
|
|
+ translate_active_width(ibdev, ib_link_width_oper, &props->active_width);
|
|
|
+
|
|
|
err = mlx5_query_port_ib_proto_oper(mdev, &props->active_speed, port);
|
|
|
if (err)
|
|
|
goto out;
|