Re: [PATCH for-next 2/2] RDMA/hns: Add dealloc mw support for hip08

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Sep 06, 2018 at 04:49:41PM +0800, Yixian Liu wrote:
> This patch adds memory window (mw) deallocation support in
> kernel space driver.
> 
> Signed-off-by: Yixian Liu <liuyixian@xxxxxxxxxx>
>  drivers/infiniband/hw/hns/hns_roce_device.h |  1 +
>  drivers/infiniband/hw/hns/hns_roce_main.c   |  5 ++++-
>  drivers/infiniband/hw/hns/hns_roce_mr.c     | 21 ++++++++++++++-------
>  3 files changed, 19 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/infiniband/hw/hns/hns_roce_device.h b/drivers/infiniband/hw/hns/hns_roce_device.h
> index 4fe4a3b..a7e2408 100644
> +++ b/drivers/infiniband/hw/hns/hns_roce_device.h
> @@ -995,6 +995,7 @@ unsigned long key_to_hw_index(u32 key);
>  
>  struct ib_mw *hns_roce_alloc_mw(struct ib_pd *pd, enum ib_mw_type,
>  				struct ib_udata *udata);
> +int hns_roce_dealloc_mw(struct ib_mw *ibmw);
>  
>  void hns_roce_buf_free(struct hns_roce_dev *hr_dev, u32 size,
>  		       struct hns_roce_buf *buf);
> diff --git a/drivers/infiniband/hw/hns/hns_roce_main.c b/drivers/infiniband/hw/hns/hns_roce_main.c
> index ff71d91..de45da3 100644
> +++ b/drivers/infiniband/hw/hns/hns_roce_main.c
> @@ -587,7 +587,10 @@ static int hns_roce_register_device(struct hns_roce_dev *hr_dev)
>  	/* MW */
>  	if (hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_MW) {
>  		ib_dev->alloc_mw	= hns_roce_alloc_mw;
> -		ib_dev->uverbs_cmd_mask |= (1ULL << IB_USER_VERBS_CMD_ALLOC_MW);
> +		ib_dev->dealloc_mw	= hns_roce_dealloc_mw;
> +		ib_dev->uverbs_cmd_mask |=
> +					(1ULL << IB_USER_VERBS_CMD_ALLOC_MW) |
> +					(1ULL << IB_USER_VERBS_CMD_DEALLOC_MW);
>  	}
>  
>  	/* OTHERS */
> diff --git a/drivers/infiniband/hw/hns/hns_roce_mr.c b/drivers/infiniband/hw/hns/hns_roce_mr.c
> index 84779dd..767a25a 100644
> +++ b/drivers/infiniband/hw/hns/hns_roce_mr.c
> @@ -1202,19 +1202,17 @@ int hns_roce_dereg_mr(struct ib_mr *ibmr)
>  	return ret;
>  }
>  
> -static int hns_roce_mw_free(struct hns_roce_dev *hr_dev,
> +static void hns_roce_mw_free(struct hns_roce_dev *hr_dev,
>  			     struct hns_roce_mw *mw)
>  {

don't change stuff you newly introduced in the patch before

Jason



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux