On 26/04/2020 10:17, Maor Gottlieb wrote:
> Following patch adds additional argument to the create AH function,
> so it make sense to group ah_attr and flags arguments in struct.
>
> Signed-off-by: Maor Gottlieb <[email protected]>
RDMA driver maintainers should probably be CC'd.
> diff --git a/drivers/infiniband/hw/efa/efa.h b/drivers/infiniband/hw/efa/efa.h
> index aa7396a1588a..45d519edb4c3 100644
> --- a/drivers/infiniband/hw/efa/efa.h
> +++ b/drivers/infiniband/hw/efa/efa.h
> @@ -153,8 +153,7 @@ int efa_mmap(struct ib_ucontext *ibucontext,
> struct vm_area_struct *vma);
> void efa_mmap_free(struct rdma_user_mmap_entry *rdma_entry);
> int efa_create_ah(struct ib_ah *ibah,
> - struct rdma_ah_attr *ah_attr,
> - u32 flags,
> + struct rdma_ah_init_attr *init_attr,
> struct ib_udata *udata);
> void efa_destroy_ah(struct ib_ah *ibah, u32 flags);
> int efa_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *qp_attr,
> diff --git a/drivers/infiniband/hw/efa/efa_verbs.c
> b/drivers/infiniband/hw/efa/efa_verbs.c
> index 5c57098a4aee..454b01b21e6a 100644
> --- a/drivers/infiniband/hw/efa/efa_verbs.c
> +++ b/drivers/infiniband/hw/efa/efa_verbs.c
> @@ -1639,10 +1639,10 @@ static int efa_ah_destroy(struct efa_dev *dev, struct
> efa_ah *ah)
> }
>
> int efa_create_ah(struct ib_ah *ibah,
> - struct rdma_ah_attr *ah_attr,
> - u32 flags,
> + struct rdma_ah_init_attr *init_attr,
> struct ib_udata *udata)
> {
> + struct rdma_ah_attr *ah_attr = init_attr->ah_attr;
> struct efa_dev *dev = to_edev(ibah->device);
> struct efa_com_create_ah_params params = {};
> struct efa_ibv_create_ah_resp resp = {};
> @@ -1650,7 +1650,7 @@ int efa_create_ah(struct ib_ah *ibah,
> struct efa_ah *ah = to_eah(ibah);
> int err;
>
> - if (!(flags & RDMA_CREATE_AH_SLEEPABLE)) {
> + if (!(init_attr->flags & RDMA_CREATE_AH_SLEEPABLE)) {
> ibdev_dbg(&dev->ibdev,
> "Create address handle is not supported in atomic
> context\n");
> err = -EOPNOTSUPP;
EFA part looks good,
Acked-by: Gal Pressman <[email protected]>