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