RDMA/providers: Fix return value when QP type isn't supported
authorKamal Heib <kamalheib1@gmail.com>
Thu, 30 Jan 2020 08:20:49 +0000 (10:20 +0200)
committerJason Gunthorpe <jgg@mellanox.com>
Wed, 4 Mar 2020 16:13:42 +0000 (12:13 -0400)
The proper return code is "-EOPNOTSUPP" when the requested QP type is
not supported by the provider.

Link: https://lore.kernel.org/r/20200130082049.463-1-kamalheib1@gmail.com
Signed-off-by: Kamal Heib <kamalheib1@gmail.com>
Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
13 files changed:
drivers/infiniband/hw/bnxt_re/ib_verbs.c
drivers/infiniband/hw/cxgb4/qp.c
drivers/infiniband/hw/hns/hns_roce_qp.c
drivers/infiniband/hw/i40iw/i40iw_verbs.c
drivers/infiniband/hw/mlx4/qp.c
drivers/infiniband/hw/mlx5/qp.c
drivers/infiniband/hw/mthca/mthca_provider.c
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
drivers/infiniband/hw/qedr/verbs.c
drivers/infiniband/hw/usnic/usnic_ib_verbs.c
drivers/infiniband/hw/vmw_pvrdma/pvrdma_qp.c
drivers/infiniband/sw/rdmavt/qp.c
drivers/infiniband/sw/siw/siw_verbs.c

index 7e74efd15d6d8202b882a3043883a18ee41dca04..47b0b50b71e70b2906bdb02860b24af37085d718 100644 (file)
@@ -1141,7 +1141,7 @@ static int bnxt_re_init_qp_type(struct bnxt_re_dev *rdev,
        qptype = __from_ib_qp_type(init_attr->qp_type);
        if (qptype == IB_QPT_MAX) {
                ibdev_err(&rdev->ibdev, "QP type 0x%x not supported", qptype);
-               qptype = -EINVAL;
+               qptype = -EOPNOTSUPP;
                goto out;
        }
 
index bbcac539777a2f62281963bf988465c6add06d58..708216d82852caea473e8b2e6ee46e6604a84295 100644 (file)
@@ -2127,7 +2127,7 @@ struct ib_qp *c4iw_create_qp(struct ib_pd *pd, struct ib_qp_init_attr *attrs,
        pr_debug("ib_pd %p\n", pd);
 
        if (attrs->qp_type != IB_QPT_RC)
-               return ERR_PTR(-EINVAL);
+               return ERR_PTR(-EOPNOTSUPP);
 
        php = to_c4iw_pd(pd);
        rhp = php->rhp;
index 2a7535534ea84c985baf880657f0394c9781f68b..7bec0ceb160be046ab5620a8017450ef7b11b3df 100644 (file)
@@ -1261,7 +1261,7 @@ struct ib_qp *hns_roce_create_qp(struct ib_pd *pd,
        default:{
                ibdev_err(ibdev, "not support QP type %d\n",
                          init_attr->qp_type);
-               return ERR_PTR(-EINVAL);
+               return ERR_PTR(-EOPNOTSUPP);
        }
        }
 
index c335de91508faa1b46de6e2afc2d90683fb4f01d..fa1292932b8840a357161b62b601f5aa2272ed83 100644 (file)
@@ -617,7 +617,7 @@ static struct ib_qp *i40iw_create_qp(struct ib_pd *ibpd,
        iwqp->ctx_info.qp_compl_ctx = (uintptr_t)qp;
 
        if (init_attr->qp_type != IB_QPT_RC) {
-               err_code = -EINVAL;
+               err_code = -EOPNOTSUPP;
                goto error;
        }
        if (iwdev->push_mode)
index 26425dd2d960fc3f6a0bfc8f9793c6d1fea5874a..2f9f78912267d7eed77b387dd7d2835cd00d2b77 100644 (file)
@@ -1636,7 +1636,7 @@ static struct ib_qp *_mlx4_ib_create_qp(struct ib_pd *pd,
        }
        default:
                /* Don't support raw QPs */
-               return ERR_PTR(-EINVAL);
+               return ERR_PTR(-EOPNOTSUPP);
        }
 
        return &qp->ibqp;
index a4f8e7030787184761ad57fa26452dbb69ee4b3f..a597c9043b1d1e7aed9ae029fd4c6fb7e08c750e 100644 (file)
@@ -2789,7 +2789,7 @@ struct ib_qp *mlx5_ib_create_qp(struct ib_pd *pd,
                mlx5_ib_dbg(dev, "unsupported qp type %d\n",
                            init_attr->qp_type);
                /* Don't support raw QPs */
-               return ERR_PTR(-EINVAL);
+               return ERR_PTR(-EOPNOTSUPP);
        }
 
        if (verbs_init_attr->qp_type == IB_QPT_DRIVER)
index ac19d57803b523571f444e6a7fd2c2ba77665ef7..69a3e4f62fb1a87ec7daf0851403b859a8389648 100644 (file)
@@ -561,7 +561,7 @@ static struct ib_qp *mthca_create_qp(struct ib_pd *pd,
        }
        default:
                /* Don't support raw QPs */
-               return ERR_PTR(-ENOSYS);
+               return ERR_PTR(-EOPNOTSUPP);
        }
 
        if (err) {
index d47ea675734bb9bd5d3a4ea7d0a4fa4c676255fb..10e34389459592039aa328c12f987da5992539c2 100644 (file)
@@ -1111,7 +1111,7 @@ static int ocrdma_check_qp_params(struct ib_pd *ibpd, struct ocrdma_dev *dev,
            (attrs->qp_type != IB_QPT_UD)) {
                pr_err("%s(%d) unsupported qp type=0x%x requested\n",
                       __func__, dev->id, attrs->qp_type);
-               return -EINVAL;
+               return -EOPNOTSUPP;
        }
        /* Skip the check for QP1 to support CM size of 128 */
        if ((attrs->qp_type != IB_QPT_GSI) &&
index 484b555150e0f2fb48cae609049d05d3f4a3c216..a5bd3adaf90aacb362f26e3ba630a22412f62e4a 100644 (file)
@@ -1186,7 +1186,7 @@ static int qedr_check_qp_attrs(struct ib_pd *ibpd, struct qedr_dev *dev,
                DP_DEBUG(dev, QEDR_MSG_QP,
                         "create qp: unsupported qp type=0x%x requested\n",
                         attrs->qp_type);
-               return -EINVAL;
+               return -EOPNOTSUPP;
        }
 
        if (attrs->cap.max_send_wr > qattr->max_sqe) {
index 556b8e44a51c49e103b195d3619818b133c9bd7e..71f82339446c29db28ade7401fa40fad7a1e3800 100644 (file)
@@ -504,7 +504,7 @@ struct ib_qp *usnic_ib_create_qp(struct ib_pd *pd,
        if (init_attr->qp_type != IB_QPT_UD) {
                usnic_err("%s asked to make a non-UD QP: %d\n",
                          dev_name(&us_ibdev->ib_dev.dev), init_attr->qp_type);
-               return ERR_PTR(-EINVAL);
+               return ERR_PTR(-EOPNOTSUPP);
        }
 
        trans_spec = cmd.spec;
index 9de1281f9a3babadfd80ffb2a93853d172931e9f..afcc2abcf55c0680f148230e9bcd0598a579f706 100644 (file)
@@ -217,7 +217,7 @@ struct ib_qp *pvrdma_create_qp(struct ib_pd *pd,
            init_attr->qp_type != IB_QPT_GSI) {
                dev_warn(&dev->pdev->dev, "queuepair type %d not supported\n",
                         init_attr->qp_type);
-               return ERR_PTR(-EINVAL);
+               return ERR_PTR(-EOPNOTSUPP);
        }
 
        if (is_srq && !dev->dsr->caps.max_srq) {
index 3cdf75d0c7a4cf9a0a965087794dff4485373046..762d4dc11c41ff3abec4d8041c9f5620c715ad3c 100644 (file)
@@ -1196,7 +1196,7 @@ struct ib_qp *rvt_create_qp(struct ib_pd *ibpd,
 
        default:
                /* Don't support raw QPs */
-               return ERR_PTR(-EINVAL);
+               return ERR_PTR(-EOPNOTSUPP);
        }
 
        init_attr->cap.max_inline_data = 0;
index d5390d498c61dfdd9cd08914216a0962b29617c0..aeb842bc7a1ee9b2c1a5b3794487674f3991b344 100644 (file)
@@ -323,7 +323,7 @@ struct ib_qp *siw_create_qp(struct ib_pd *pd,
        }
        if (attrs->qp_type != IB_QPT_RC) {
                siw_dbg(base_dev, "only RC QP's supported\n");
-               rv = -EINVAL;
+               rv = -EOPNOTSUPP;
                goto err_out;
        }
        if ((attrs->cap.max_send_wr > SIW_MAX_QP_WR) ||