RDMA: Remove the udata parameter from alloc_mr callback
authorGal Pressman <galpress@amazon.com>
Mon, 6 Jul 2020 12:03:43 +0000 (15:03 +0300)
committerJason Gunthorpe <jgg@nvidia.com>
Mon, 6 Jul 2020 22:25:53 +0000 (19:25 -0300)
Allocating an MR flow can only be initiated by kernel users, and not from
userspace so a udata parameter is redundant.

Link: https://lore.kernel.org/r/20200706120343.10816-4-galpress@amazon.com
Signed-off-by: Gal Pressman <galpress@amazon.com>
Reviewed-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
24 files changed:
drivers/infiniband/core/verbs.c
drivers/infiniband/hw/bnxt_re/ib_verbs.c
drivers/infiniband/hw/bnxt_re/ib_verbs.h
drivers/infiniband/hw/cxgb4/iw_cxgb4.h
drivers/infiniband/hw/cxgb4/mem.c
drivers/infiniband/hw/hns/hns_roce_device.h
drivers/infiniband/hw/hns/hns_roce_mr.c
drivers/infiniband/hw/i40iw/i40iw_verbs.c
drivers/infiniband/hw/mlx4/mlx4_ib.h
drivers/infiniband/hw/mlx4/mr.c
drivers/infiniband/hw/mlx5/mlx5_ib.h
drivers/infiniband/hw/mlx5/mr.c
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
drivers/infiniband/hw/ocrdma/ocrdma_verbs.h
drivers/infiniband/hw/qedr/verbs.c
drivers/infiniband/hw/qedr/verbs.h
drivers/infiniband/hw/vmw_pvrdma/pvrdma_mr.c
drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.h
drivers/infiniband/sw/rdmavt/mr.c
drivers/infiniband/sw/rdmavt/mr.h
drivers/infiniband/sw/rxe/rxe_verbs.c
drivers/infiniband/sw/siw/siw_verbs.c
drivers/infiniband/sw/siw/siw_verbs.h
include/rdma/ib_verbs.h

index e98d3ada095139fbb44d298aae02dd713c2f7cfd..f10dc00074a74a9c80f810b8a3fe3b664ebc09ba 100644 (file)
@@ -2131,7 +2131,7 @@ struct ib_mr *ib_alloc_mr(struct ib_pd *pd, enum ib_mr_type mr_type,
                goto out;
        }
 
-       mr = pd->device->ops.alloc_mr(pd, mr_type, max_num_sg, NULL);
+       mr = pd->device->ops.alloc_mr(pd, mr_type, max_num_sg);
        if (IS_ERR(mr))
                goto out;
 
index 8b6ad5cddfce99ef5b7fdb9d19187b77865d4274..f32c7e85ae05d3234d026f431d67bc8435d3858a 100644 (file)
@@ -3569,7 +3569,7 @@ int bnxt_re_map_mr_sg(struct ib_mr *ib_mr, struct scatterlist *sg, int sg_nents,
 }
 
 struct ib_mr *bnxt_re_alloc_mr(struct ib_pd *ib_pd, enum ib_mr_type type,
-                              u32 max_num_sg, struct ib_udata *udata)
+                              u32 max_num_sg)
 {
        struct bnxt_re_pd *pd = container_of(ib_pd, struct bnxt_re_pd, ib_pd);
        struct bnxt_re_dev *rdev = pd->rdev;
index e5fbbeba6d28d3e3d80a7091a71799c6f65ab8f1..b4a06b553b04df7c98cf2fc77cf91783f2443598 100644 (file)
@@ -201,7 +201,7 @@ struct ib_mr *bnxt_re_get_dma_mr(struct ib_pd *pd, int mr_access_flags);
 int bnxt_re_map_mr_sg(struct ib_mr *ib_mr, struct scatterlist *sg, int sg_nents,
                      unsigned int *sg_offset);
 struct ib_mr *bnxt_re_alloc_mr(struct ib_pd *ib_pd, enum ib_mr_type mr_type,
-                              u32 max_num_sg, struct ib_udata *udata);
+                              u32 max_num_sg);
 int bnxt_re_dereg_mr(struct ib_mr *mr, struct ib_udata *udata);
 struct ib_mw *bnxt_re_alloc_mw(struct ib_pd *ib_pd, enum ib_mw_type type,
                               struct ib_udata *udata);
index 27da0705c88a7bae8963fd8b7c36dc732a797a85..2b2b009b371af1431403eb310d2aa57cbbdc1de3 100644 (file)
@@ -980,7 +980,7 @@ int c4iw_reject_cr(struct iw_cm_id *cm_id, const void *pdata, u8 pdata_len);
 void c4iw_qp_add_ref(struct ib_qp *qp);
 void c4iw_qp_rem_ref(struct ib_qp *qp);
 struct ib_mr *c4iw_alloc_mr(struct ib_pd *pd, enum ib_mr_type mr_type,
-                           u32 max_num_sg, struct ib_udata *udata);
+                           u32 max_num_sg);
 int c4iw_map_mr_sg(struct ib_mr *ibmr, struct scatterlist *sg, int sg_nents,
                   unsigned int *sg_offset);
 int c4iw_dealloc_mw(struct ib_mw *mw);
index 962dc97a8ff2bc837cecf151c758677443fa009a..ea6fb2c5b1a789571afdd61eadb1d507ffd118d1 100644 (file)
@@ -691,7 +691,7 @@ int c4iw_dealloc_mw(struct ib_mw *mw)
 }
 
 struct ib_mr *c4iw_alloc_mr(struct ib_pd *pd, enum ib_mr_type mr_type,
-                           u32 max_num_sg, struct ib_udata *udata)
+                           u32 max_num_sg)
 {
        struct c4iw_dev *rhp;
        struct c4iw_pd *php;
index a61f0c4d4dbb7c5d6e6449b9b1ba88ac65594de8..5b946b5bd586244e4be5b3f0dd8f93d695939cef 100644 (file)
@@ -1191,7 +1191,7 @@ int hns_roce_rereg_user_mr(struct ib_mr *mr, int flags, u64 start, u64 length,
                           u64 virt_addr, int mr_access_flags, struct ib_pd *pd,
                           struct ib_udata *udata);
 struct ib_mr *hns_roce_alloc_mr(struct ib_pd *pd, enum ib_mr_type mr_type,
-                               u32 max_num_sg, struct ib_udata *udata);
+                               u32 max_num_sg);
 int hns_roce_map_mr_sg(struct ib_mr *ibmr, struct scatterlist *sg, int sg_nents,
                       unsigned int *sg_offset);
 int hns_roce_dereg_mr(struct ib_mr *ibmr, struct ib_udata *udata);
index 4c0bbb12770d963866093cad1bed5a72f86b332c..1380cdab57013950cfa7bfbf14441194e99f8df9 100644 (file)
@@ -414,7 +414,7 @@ int hns_roce_dereg_mr(struct ib_mr *ibmr, struct ib_udata *udata)
 }
 
 struct ib_mr *hns_roce_alloc_mr(struct ib_pd *pd, enum ib_mr_type mr_type,
-                               u32 max_num_sg, struct ib_udata *udata)
+                               u32 max_num_sg)
 {
        struct hns_roce_dev *hr_dev = to_hr_dev(pd->device);
        struct device *dev = hr_dev->dev;
index 19af29a48c55938f9c9f8a3d087a646ec74a9e57..f9ef3ac2f4cd2e37beb0fe92068aada3dc808df4 100644 (file)
@@ -1543,10 +1543,9 @@ static int i40iw_hw_alloc_stag(struct i40iw_device *iwdev, struct i40iw_mr *iwmr
  * @pd: ibpd pointer
  * @mr_type: memory for stag registrion
  * @max_num_sg: man number of pages
- * @udata: user data or NULL for kernel objects
  */
 static struct ib_mr *i40iw_alloc_mr(struct ib_pd *pd, enum ib_mr_type mr_type,
-                                   u32 max_num_sg, struct ib_udata *udata)
+                                   u32 max_num_sg)
 {
        struct i40iw_pd *iwpd = to_iwpd(pd);
        struct i40iw_device *iwdev = to_iwdev(pd->device);
index 6f4ea1067095e4f0d34df02d8ea27cfcd6850ab6..38e87a700a2a203df2cd7ff2b1246252c82b8f2a 100644 (file)
@@ -729,7 +729,7 @@ struct ib_mw *mlx4_ib_alloc_mw(struct ib_pd *pd, enum ib_mw_type type,
                               struct ib_udata *udata);
 int mlx4_ib_dealloc_mw(struct ib_mw *mw);
 struct ib_mr *mlx4_ib_alloc_mr(struct ib_pd *pd, enum ib_mr_type mr_type,
-                              u32 max_num_sg, struct ib_udata *udata);
+                              u32 max_num_sg);
 int mlx4_ib_map_mr_sg(struct ib_mr *ibmr, struct scatterlist *sg, int sg_nents,
                      unsigned int *sg_offset);
 int mlx4_ib_modify_cq(struct ib_cq *cq, u16 cq_count, u16 cq_period);
index 7e0b205c05eb30984b2c2b178bdcf11dcfdc98ce..6eecedeff2d34074cd646e6ef29f7a84c30c24b4 100644 (file)
@@ -655,7 +655,7 @@ int mlx4_ib_dealloc_mw(struct ib_mw *ibmw)
 }
 
 struct ib_mr *mlx4_ib_alloc_mr(struct ib_pd *pd, enum ib_mr_type mr_type,
-                              u32 max_num_sg, struct ib_udata *udata)
+                              u32 max_num_sg)
 {
        struct mlx4_ib_dev *dev = to_mdev(pd->device);
        struct mlx4_ib_mr *mr;
index 2fd199c07ddad9b9a56efed7e88b624f0fdf54b4..93a471191a1ddda724ed251db5deb7b0d7a0a75f 100644 (file)
@@ -1210,7 +1210,7 @@ int mlx5_ib_rereg_user_mr(struct ib_mr *ib_mr, int flags, u64 start,
                          struct ib_pd *pd, struct ib_udata *udata);
 int mlx5_ib_dereg_mr(struct ib_mr *ibmr, struct ib_udata *udata);
 struct ib_mr *mlx5_ib_alloc_mr(struct ib_pd *pd, enum ib_mr_type mr_type,
-                              u32 max_num_sg, struct ib_udata *udata);
+                              u32 max_num_sg);
 struct ib_mr *mlx5_ib_alloc_mr_integrity(struct ib_pd *pd,
                                         u32 max_num_sg,
                                         u32 max_num_meta_sg);
index 44683073be0c4a7988d6f3eb917936b444470de1..3e6f2f9c6655578adf4992413403cce991983350 100644 (file)
@@ -1961,7 +1961,7 @@ err_free:
 }
 
 struct ib_mr *mlx5_ib_alloc_mr(struct ib_pd *pd, enum ib_mr_type mr_type,
-                              u32 max_num_sg, struct ib_udata *udata)
+                              u32 max_num_sg)
 {
        return __mlx5_ib_alloc_mr(pd, mr_type, max_num_sg, 0);
 }
index d11c74390a1242c332ca4120e227f8855d595a75..6cdbec13756af5ac7741202fcf38cc54ed5d6dbe 100644 (file)
@@ -2901,7 +2901,7 @@ int ocrdma_arm_cq(struct ib_cq *ibcq, enum ib_cq_notify_flags cq_flags)
 }
 
 struct ib_mr *ocrdma_alloc_mr(struct ib_pd *ibpd, enum ib_mr_type mr_type,
-                             u32 max_num_sg, struct ib_udata *udata)
+                             u32 max_num_sg)
 {
        int status;
        struct ocrdma_mr *mr;
index 3a5010881be5b877d936f22e016851d97b905988..df8e3b923a440c9e7bd4c5008c028851ccd2fb6c 100644 (file)
@@ -101,7 +101,7 @@ struct ib_mr *ocrdma_get_dma_mr(struct ib_pd *, int acc);
 struct ib_mr *ocrdma_reg_user_mr(struct ib_pd *, u64 start, u64 length,
                                 u64 virt, int acc, struct ib_udata *);
 struct ib_mr *ocrdma_alloc_mr(struct ib_pd *pd, enum ib_mr_type mr_type,
-                             u32 max_num_sg, struct ib_udata *udata);
+                             u32 max_num_sg);
 int ocrdma_map_mr_sg(struct ib_mr *ibmr, struct scatterlist *sg, int sg_nents,
                     unsigned int *sg_offset);
 
index 9b9e802663674ca9fb48d41c93450e90b3798f94..3d7d5617818f0c3f7f0a3ea02c1098cad7497d44 100644 (file)
@@ -3003,7 +3003,7 @@ err0:
 }
 
 struct ib_mr *qedr_alloc_mr(struct ib_pd *ibpd, enum ib_mr_type mr_type,
-                           u32 max_num_sg, struct ib_udata *udata)
+                           u32 max_num_sg)
 {
        struct qedr_mr *mr;
 
index 5e02387e068d14fc0baa027bd6c6776b30f785e9..39dd6286ba39558f4af567640894f675fb195619 100644 (file)
@@ -84,7 +84,7 @@ int qedr_map_mr_sg(struct ib_mr *ibmr, struct scatterlist *sg,
                   int sg_nents, unsigned int *sg_offset);
 
 struct ib_mr *qedr_alloc_mr(struct ib_pd *pd, enum ib_mr_type mr_type,
-                           u32 max_num_sg, struct ib_udata *udata);
+                           u32 max_num_sg);
 int qedr_poll_cq(struct ib_cq *, int num_entries, struct ib_wc *wc);
 int qedr_post_send(struct ib_qp *, const struct ib_send_wr *,
                   const struct ib_send_wr **bad_wr);
index b039f1f00e05abaa1848e3e36ee9d013147c4836..77a010e682081aa7e61c4b9f3da5a266e803a3ba 100644 (file)
@@ -202,7 +202,7 @@ err_umem:
  * @return: ib_mr pointer on success, otherwise returns an errno.
  */
 struct ib_mr *pvrdma_alloc_mr(struct ib_pd *pd, enum ib_mr_type mr_type,
-                             u32 max_num_sg, struct ib_udata *udata)
+                             u32 max_num_sg)
 {
        struct pvrdma_dev *dev = to_vdev(pd->device);
        struct pvrdma_user_mr *mr;
index 267702226f108235eb6cabe9534adcc0d5fe12f8..699b20849a7efa0026efbf59e6b51b15cc232b87 100644 (file)
@@ -406,7 +406,7 @@ struct ib_mr *pvrdma_reg_user_mr(struct ib_pd *pd, u64 start, u64 length,
                                 struct ib_udata *udata);
 int pvrdma_dereg_mr(struct ib_mr *mr, struct ib_udata *udata);
 struct ib_mr *pvrdma_alloc_mr(struct ib_pd *pd, enum ib_mr_type mr_type,
-                             u32 max_num_sg, struct ib_udata *udata);
+                             u32 max_num_sg);
 int pvrdma_map_mr_sg(struct ib_mr *ibmr, struct scatterlist *sg,
                     int sg_nents, unsigned int *sg_offset);
 int pvrdma_create_cq(struct ib_cq *ibcq, const struct ib_cq_init_attr *attr,
index 60864e5ca7cb674fa761322f14352f991ef4485f..2f7c25fea44a9ded22dcce36585872cd6727f6fe 100644 (file)
@@ -576,7 +576,7 @@ out:
  * Return: the memory region on success, otherwise return an errno.
  */
 struct ib_mr *rvt_alloc_mr(struct ib_pd *pd, enum ib_mr_type mr_type,
-                          u32 max_num_sg, struct ib_udata *udata)
+                          u32 max_num_sg)
 {
        struct rvt_mr *mr;
 
index 780fc63af98b75d177989160639f48651b99ac5c..b3aba359401bc9cc98805f3da4b8f839f0f2439b 100644 (file)
@@ -71,7 +71,7 @@ struct ib_mr *rvt_reg_user_mr(struct ib_pd *pd, u64 start, u64 length,
                              struct ib_udata *udata);
 int rvt_dereg_mr(struct ib_mr *ibmr, struct ib_udata *udata);
 struct ib_mr *rvt_alloc_mr(struct ib_pd *pd, enum ib_mr_type mr_type,
-                          u32 max_num_sg, struct ib_udata *udata);
+                          u32 max_num_sg);
 int rvt_map_mr_sg(struct ib_mr *ibmr, struct scatterlist *sg,
                  int sg_nents, unsigned int *sg_offset);
 
index b8a22af724e8b55fcc98f714f88d4ad9f66a76c0..0472df52d36d6fa86c16ac45ff9d20bb57a49516 100644 (file)
@@ -975,7 +975,7 @@ static int rxe_dereg_mr(struct ib_mr *ibmr, struct ib_udata *udata)
 }
 
 static struct ib_mr *rxe_alloc_mr(struct ib_pd *ibpd, enum ib_mr_type mr_type,
-                                 u32 max_num_sg, struct ib_udata *udata)
+                                 u32 max_num_sg)
 {
        struct rxe_dev *rxe = to_rdev(ibpd->device);
        struct rxe_pd *pd = to_rpd(ibpd);
index 987e2ba05dbc066b2c3e6544b6d79c70715e4c9a..0d509f7a10a63b5f4cc1ff7108c80314f97c974a 100644 (file)
@@ -1373,7 +1373,7 @@ err_out:
 }
 
 struct ib_mr *siw_alloc_mr(struct ib_pd *pd, enum ib_mr_type mr_type,
-                          u32 max_sge, struct ib_udata *udata)
+                          u32 max_sge)
 {
        struct siw_device *sdev = to_siw_dev(pd->device);
        struct siw_mr *mr = NULL;
index 1a731989fad60bd6487e539f0bb6a792763a7b72..9335c48c01de26de0e6e7ec957b1da98fb56f3cc 100644 (file)
@@ -69,7 +69,7 @@ int siw_req_notify_cq(struct ib_cq *base_cq, enum ib_cq_notify_flags flags);
 struct ib_mr *siw_reg_user_mr(struct ib_pd *base_pd, u64 start, u64 len,
                              u64 rnic_va, int rights, struct ib_udata *udata);
 struct ib_mr *siw_alloc_mr(struct ib_pd *base_pd, enum ib_mr_type mr_type,
-                          u32 max_sge, struct ib_udata *udata);
+                          u32 max_sge);
 struct ib_mr *siw_get_dma_mr(struct ib_pd *base_pd, int rights);
 int siw_map_mr_sg(struct ib_mr *base_mr, struct scatterlist *sl, int num_sle,
                  unsigned int *sg_off);
index 084fe8f53ae83975058290f1bddf9965dd899b31..204ec7516ef585bf074cf7675e953f81a579eebb 100644 (file)
@@ -2478,7 +2478,7 @@ struct ib_device_ops {
                             struct ib_pd *pd, struct ib_udata *udata);
        int (*dereg_mr)(struct ib_mr *mr, struct ib_udata *udata);
        struct ib_mr *(*alloc_mr)(struct ib_pd *pd, enum ib_mr_type mr_type,
-                                 u32 max_num_sg, struct ib_udata *udata);
+                                 u32 max_num_sg);
        struct ib_mr *(*alloc_mr_integrity)(struct ib_pd *pd,
                                            u32 max_num_data_sg,
                                            u32 max_num_meta_sg);