Thank you. This patch is right. Could you change it to this form? default: ret = -EINVAL; goto out; } ret = rdma_user_mmap_io(uctx, vma, pfn, rdma_entry->npages * PAGE_SIZE, prot, rdma_entry); out: rdma_user_mmap_entry_put(rdma_entry); return ret; On 2022/12/20 19:30:47, Miaoqian Lin wrote: > rdma_user_mmap_entry_get_pgoff() takes reference. > Add missing rdma_user_mmap_entry_put() to release the reference. > > Fixes: 0045e0d3f42e ("RDMA/hns: Support direct wqe of userspace") > Signed-off-by: Miaoqian Lin <linmq006@xxxxxxxxx> > --- > drivers/infiniband/hw/hns/hns_roce_main.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/infiniband/hw/hns/hns_roce_main.c b/drivers/infiniband/hw/hns/hns_roce_main.c > index 8ba68ac12388..fbff8df9236d 100644 > --- a/drivers/infiniband/hw/hns/hns_roce_main.c > +++ b/drivers/infiniband/hw/hns/hns_roce_main.c > @@ -443,6 +443,7 @@ static int hns_roce_mmap(struct ib_ucontext *uctx, struct vm_area_struct *vma) > prot = pgprot_device(vma->vm_page_prot); > break; > default: > + rdma_user_mmap_entry_put(rdma_entry); > return -EINVAL; > } > >