RDMA/mlx4: Return missed an error if device doesn't support steering
authorLeon Romanovsky <leonro@nvidia.com>
Tue, 12 Oct 2021 07:28:43 +0000 (10:28 +0300)
committerJason Gunthorpe <jgg@nvidia.com>
Tue, 12 Oct 2021 16:23:23 +0000 (13:23 -0300)
The error flow fixed in this patch is not possible because all kernel
users of create QP interface check that device supports steering before
set IB_QP_CREATE_NETIF_QP flag.

Fixes: c1c98501121e ("IB/mlx4: Add support for steerable IB UD QPs")
Link: https://lore.kernel.org/r/91c61f6e60eb0240f8bbc321fda7a1d2986dd03c.1634023677.git.leonro@nvidia.com
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/hw/mlx4/qp.c

index 8662f462e2a5faab9d3bedf168867b4cf62680b4..3a1a4ac9dd33db7a4df1c1651b8c6f7d42032604 100644 (file)
@@ -1099,8 +1099,10 @@ static int create_qp_common(struct ib_pd *pd, struct ib_qp_init_attr *init_attr,
                        if (dev->steering_support ==
                            MLX4_STEERING_MODE_DEVICE_MANAGED)
                                qp->flags |= MLX4_IB_QP_NETIF;
-                       else
+                       else {
+                               err = -EINVAL;
                                goto err;
+                       }
                }
 
                err = set_kernel_sq_size(dev, &init_attr->cap, qp_type, qp);