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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 26 Nov 2021 10:48:37 +0000 (11:48 +0100)
[ Upstream commit f4e56ec4452f48b8292dcf0e1c4bdac83506fb8b ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/infiniband/hw/mlx4/qp.c

index 7284a9176844e6ced6d72d5342cce9d25c207f5b..718d817265795a0ef79d41a34f03601f49e4fea2 100644 (file)
@@ -773,8 +773,10 @@ static int create_qp_common(struct mlx4_ib_dev *dev, struct ib_pd *pd,
                        if (dev->steering_support ==
                            MLX4_STEERING_MODE_DEVICE_MANAGED)
                                qp->flags |= MLX4_IB_QP_NETIF;
-                       else
+                       else {
+                               err = -EINVAL;
                                goto err;
+                       }
                }
 
                memcpy(&backup_cap, &init_attr->cap, sizeof(backup_cap));