Allocate MR cleanups
Subsystems (12)
cover Allocate MR cleanups
The allocate MR functionality is limited to kernel users, there is no reason to pass a redundant udata parameter.
In addition, a small cleanup was added to the MR allocation function to keep the main flow unindented.
Gal Pressman (3):
RDMA/core: Check for error instead of success in alloc MR function RDMA/core: Remove ib_alloc_mr_user function
RDMA: Remove the udata parameter from alloc_mr callback
drivers/infiniband/core/verbs.c | 36 +++++++++---------- drivers/infiniband/hw/bnxt_re/ib_verbs.c | 2 +- drivers/infiniband/hw/bnxt_re/ib_verbs.h | 2 +- drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 2 +- drivers/infiniband/hw/cxgb4/mem.c | 2 +- drivers/infiniband/hw/hns/hns_roce_device.h | 2 +- drivers/infiniband/hw/hns/hns_roce_mr.c | 2 +- drivers/infiniband/hw/i40iw/i40iw_verbs.c | 3 +- drivers/infiniband/hw/mlx4/mlx4_ib.h | 2 +- drivers/infiniband/hw/mlx4/mr.c | 2 +- drivers/infiniband/hw/mlx5/mlx5_ib.h | 2 +- drivers/infiniband/hw/mlx5/mr.c | 2 +- drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 2 +- drivers/infiniband/hw/ocrdma/ocrdma_verbs.h | 2 +- drivers/infiniband/hw/qedr/verbs.c | 2 +- drivers/infiniband/hw/qedr/verbs.h | 2 +- drivers/infiniband/hw/vmw_pvrdma/pvrdma_mr.c | 2 +- .../infiniband/hw/vmw_pvrdma/pvrdma_verbs.h | 2 +- drivers/infiniband/sw/rdmavt/mr.c | 2 +- drivers/infiniband/sw/rdmavt/mr.h | 2 +- drivers/infiniband/sw/rxe/rxe_verbs.c | 2 +- drivers/infiniband/sw/siw/siw_verbs.c | 2 +- drivers/infiniband/sw/siw/siw_verbs.h | 2 +- include/rdma/ib_verbs.h | 12 ++----- 24 files changed, 43 insertions(+), 50 deletions(-)
Signature · 1 line
2.27.0
PATCH 1/3 RDMA/core: Check for error instead of success in alloc MR function
The common kernel pattern is to check for error, not success. Flip the if statement accordingly and keep the main flow unindented.
--- drivers/infiniband/core/verbs.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-)
drivers/infiniband/core/verbs.c +13 -12
@@ -2133,18 +2133,19 @@ struct ib_mr *ib_alloc_mr_user(struct ib_pd *pd, enum ib_mr_type mr_type, } mr = pd->device->ops.alloc_mr (pd, mr_type, max_num_sg, udata); -if (!IS_ERR (mr)) { - mr->device = pd->device; - mr->pd = pd; - mr->dm =NULL ; - mr->uobject =NULL ; -atomic_inc (&pd->usecnt); - mr->need_inval = false; - mr->res.type =RDMA_RESTRACK_MR ; -rdma_restrack_kadd (&mr->res); - mr->type = mr_type; - mr->sig_attrs =NULL ; - } +if (IS_ERR (mr)) + goto out; + + mr->device = pd->device; + mr->pd = pd; + mr->dm =NULL ; + mr->uobject =NULL ; +atomic_inc (&pd->usecnt); + mr->need_inval = false; + mr->res.type =RDMA_RESTRACK_MR ; +rdma_restrack_kadd (&mr->res); + mr->type = mr_type; + mr->sig_attrs =NULL ; out:trace_mr_alloc (pd, mr_type, max_num_sg, mr);
Signature · 1 line
2.27.0
Re: [PATCH for-next 1/3] RDMA/core: Check for error instead of success in alloc MR function
Quoted 8 lines · Gal Pressman
The common kernel pattern is to check for error, not success. Flip the if statement accordingly and keep the main flow unindented.
Signed-off-by Gal Pressman <[email protected]>--- drivers/infiniband/core/verbs.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-)
Thanks,
PATCH 2/3 RDMA/core: Remove ib_alloc_mr_user function
In reply to Gal PressmanAllocating an MR flow can only be initiated by kernel users, and not from userspace. As a result, the udata parameter is always being passed as NULL. Rename ib_alloc_mr_user function to ib_alloc_mr and remove the udata parameter.
--- drivers/infiniband/core/verbs.c | 11 +++++------ include/rdma/ib_verbs.h | 10 ++-------- 2 files changed, 7 insertions(+), 14 deletions(-)
drivers/infiniband/core/verbs.c +5 -6
@@ -2104,11 +2104,10 @@ int ib_dereg_mr_user(struct ib_mr *mr, struct ib_udata *udata)EXPORT_SYMBOL (ib_dereg_mr_user);/** -* ib_alloc_mr_user() - Allocates a memory region +* ib_alloc_mr() - Allocates a memory region * @pd: protection domain associated with the region * @mr_type: memory region type * @max_num_sg: maximum sg entries available for registration. -* @udata: user data or null for kernel objects * * Notes: * Memory registeration page/sg lists must not exceed max_num_sg.
@@ -2116,8 +2115,8 @@ EXPORT_SYMBOL(ib_dereg_mr_user);* max_num_sg * used_page_size. * */ -struct ib_mr *ib_alloc_mr_user (struct ib_pd *pd,enum ib_mr_type mr_type, -u32 max_num_sg,struct ib_udata *udata) +struct ib_mr *ib_alloc_mr (struct ib_pd *pd,enum ib_mr_type mr_type, +u32 max_num_sg) {struct ib_mr *mr;
@@ -2132,7 +2131,7 @@ struct ib_mr *ib_alloc_mr_user(struct ib_pd *pd, enum ib_mr_type mr_type, goto out; } - mr = pd->device->ops.alloc_mr (pd, mr_type, max_num_sg, udata); + mr = pd->device->ops.alloc_mr (pd, mr_type, max_num_sg,NULL );if (IS_ERR (mr)) goto out;
@@ -2151,7 +2150,7 @@ struct ib_mr *ib_alloc_mr_user(struct ib_pd *pd, enum ib_mr_type mr_type,trace_mr_alloc (pd, mr_type, max_num_sg, mr);return mr; } -EXPORT_SYMBOL (ib_alloc_mr_user); +EXPORT_SYMBOL (ib_alloc_mr);/** * ib_alloc_mr_integrity() - Allocates an integrity memory region
include/rdma/ib_verbs.h +2 -8
@@ -4268,14 +4268,8 @@ static inline int ib_dereg_mr(struct ib_mr *mr)return ib_dereg_mr_user (mr,NULL ); } -struct ib_mr *ib_alloc_mr_user (struct ib_pd *pd,enum ib_mr_type mr_type, -u32 max_num_sg,struct ib_udata *udata); - -static inline struct ib_mr *ib_alloc_mr (struct ib_pd *pd, -enum ib_mr_type mr_type,u32 max_num_sg) -{ -return ib_alloc_mr_user (pd, mr_type, max_num_sg,NULL ); -} +struct ib_mr *ib_alloc_mr (struct ib_pd *pd,enum ib_mr_type mr_type, +u32 max_num_sg); struct ib_mr *ib_alloc_mr_integrity(struct ib_pd *pd, u32 max_num_data_sg,
Signature · 1 line
2.27.0
Re: [PATCH for-next 2/3] RDMA/core: Remove ib_alloc_mr_user function
Quoted 11 lines · Gal Pressman
Allocating an MR flow can only be initiated by kernel users, and not from userspace. As a result, the udata parameter is always being passed as NULL. Rename
ib_alloc_mr_userfunction toib_alloc_mrand remove the udata parameter.Signed-off-by Gal Pressman <[email protected]>--- drivers/infiniband/core/verbs.c | 11 +++++------ include/rdma/ib_verbs.h | 10 ++-------- 2 files changed, 7 insertions(+), 14 deletions(-)
Thanks,
PATCH 3/3 RDMA: Remove the udata parameter from alloc_mr callback
In reply to Gal PressmanAllocating an MR flow can only be initiated by kernel users, and not from userspace so a udata parameter is redundant.
--- drivers/infiniband/core/verbs.c | 2 +- drivers/infiniband/hw/bnxt_re/ib_verbs.c | 2 +- drivers/infiniband/hw/bnxt_re/ib_verbs.h | 2 +- drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 2 +- drivers/infiniband/hw/cxgb4/mem.c | 2 +- drivers/infiniband/hw/hns/hns_roce_device.h | 2 +- drivers/infiniband/hw/hns/hns_roce_mr.c | 2 +- drivers/infiniband/hw/i40iw/i40iw_verbs.c | 3 +-- drivers/infiniband/hw/mlx4/mlx4_ib.h | 2 +- drivers/infiniband/hw/mlx4/mr.c | 2 +- drivers/infiniband/hw/mlx5/mlx5_ib.h | 2 +- drivers/infiniband/hw/mlx5/mr.c | 2 +- drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 2 +- drivers/infiniband/hw/ocrdma/ocrdma_verbs.h | 2 +- drivers/infiniband/hw/qedr/verbs.c | 2 +- drivers/infiniband/hw/qedr/verbs.h | 2 +- drivers/infiniband/hw/vmw_pvrdma/pvrdma_mr.c | 2 +- drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.h | 2 +- drivers/infiniband/sw/rdmavt/mr.c | 2 +- drivers/infiniband/sw/rdmavt/mr.h | 2 +- drivers/infiniband/sw/rxe/rxe_verbs.c | 2 +- drivers/infiniband/sw/siw/siw_verbs.c | 2 +- drivers/infiniband/sw/siw/siw_verbs.h | 2 +- include/rdma/ib_verbs.h | 2 +- 24 files changed, 24 insertions(+), 25 deletions(-)
drivers/infiniband/core/verbs.c +1 -1
@@ -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;
drivers/infiniband/hw/bnxt_re/ib_verbs.c +1 -1
@@ -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;
drivers/infiniband/hw/bnxt_re/ib_verbs.h +1 -1
@@ -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);
drivers/infiniband/hw/cxgb4/iw_cxgb4.h +1 -1
@@ -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);
drivers/infiniband/hw/cxgb4/mem.c +1 -1
@@ -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;
drivers/infiniband/hw/hns/hns_roce_device.h +1 -1
@@ -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);
drivers/infiniband/hw/hns/hns_roce_mr.c +1 -1
@@ -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;
drivers/infiniband/hw/i40iw/i40iw_verbs.c +1 -2
@@ -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);
drivers/infiniband/hw/mlx4/mlx4_ib.h +1 -1
@@ -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);
drivers/infiniband/hw/mlx4/mr.c +1 -1
@@ -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;
drivers/infiniband/hw/mlx5/mlx5_ib.h +1 -1
@@ -1205,7 +1205,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);
drivers/infiniband/hw/mlx5/mr.c +1 -1
@@ -1961,7 +1961,7 @@ static struct ib_mr *__mlx5_ib_alloc_mr(struct ib_pd *pd, }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 ); }
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c +1 -1
@@ -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;
drivers/infiniband/hw/ocrdma/ocrdma_verbs.h +1 -1
@@ -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);
drivers/infiniband/hw/qedr/verbs.c +1 -1
@@ -3003,7 +3003,7 @@ static struct qedr_mr *__qedr_alloc_mr(struct ib_pd *ibpd, }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;
drivers/infiniband/hw/qedr/verbs.h +1 -1
@@ -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);
drivers/infiniband/hw/vmw_pvrdma/pvrdma_mr.c +1 -1
@@ -202,7 +202,7 @@ struct ib_mr *pvrdma_reg_user_mr(struct ib_pd *pd, u64 start, u64 length,* @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;
drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.h +1 -1
@@ -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,
drivers/infiniband/sw/rdmavt/mr.c +1 -1
@@ -576,7 +576,7 @@ int rvt_dereg_mr(struct ib_mr *ibmr, struct ib_udata *udata)* 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;
drivers/infiniband/sw/rdmavt/mr.h +1 -1
@@ -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);
drivers/infiniband/sw/rxe/rxe_verbs.c +1 -1
@@ -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);
drivers/infiniband/sw/siw/siw_verbs.c +1 -1
@@ -1373,7 +1373,7 @@ struct ib_mr *siw_reg_user_mr(struct ib_pd *pd, u64 start, u64 len, }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 ;
drivers/infiniband/sw/siw/siw_verbs.h +1 -1
@@ -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);
include/rdma/ib_verbs.h +1 -1
@@ -2477,7 +2477,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);
Signature · 1 line
2.27.0
Re: [PATCH for-next 3/3] RDMA: Remove the udata parameter from alloc_mr callback
Quoted 22 lines · Gal Pressman
Allocating an MR flow can only be initiated by kernel users, and not from userspace so a udata parameter is redundant.
Signed-off-by Gal Pressman <[email protected]>--- drivers/infiniband/core/verbs.c | 2 +- drivers/infiniband/hw/bnxt_re/ib_verbs.c | 2 +- drivers/infiniband/hw/bnxt_re/ib_verbs.h | 2 +- drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 2 +- drivers/infiniband/hw/cxgb4/mem.c | 2 +- drivers/infiniband/hw/hns/hns_roce_device.h | 2 +- drivers/infiniband/hw/hns/hns_roce_mr.c | 2 +- drivers/infiniband/hw/i40iw/i40iw_verbs.c | 3 +-- drivers/infiniband/hw/mlx4/mlx4_ib.h | 2 +- drivers/infiniband/hw/mlx4/mr.c | 2 +- drivers/infiniband/hw/mlx5/mlx5_ib.h | 2 +- drivers/infiniband/hw/mlx5/mr.c | 2 +- drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 2 +- drivers/infiniband/hw/ocrdma/ocrdma_verbs.h | 2 +- drivers/infiniband/hw/qedr/verbs.c | 2 +- drivers/infiniband/hw/qedr/verbs.h | 2 +- drivers/infiniband/hw/vmw_pvrdma/pvrdma_mr.c | 2 +-
Quoted 8 lines
drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.h | 2 +- drivers/infiniband/sw/rdmavt/mr.c | 2 +- drivers/infiniband/sw/rdmavt/mr.h | 2 +- drivers/infiniband/sw/rxe/rxe_verbs.c | 2 +- drivers/infiniband/sw/siw/siw_verbs.c | 2 +- drivers/infiniband/sw/siw/siw_verbs.h | 2 +- include/rdma/ib_verbs.h | 2 +- 24 files changed, 24 insertions(+), 25 deletions(-)
Thanks,
Quoted 9 lines · Gal Pressman
The allocate MR functionality is limited to kernel users, there is no reason to pass a redundant udata parameter.
In addition, a small cleanup was added to the MR allocation function to keep the main flow unindented.Gal Pressman (3):
RDMA/core: Check for error instead of success in alloc MR function RDMA/core: Removeib_alloc_mr_userfunction
RDMA: Remove the udata parameter fromalloc_mrcallback
Applied to for-next, thanks
Jason