diff --git a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c index d8a03c6c3e5a733e2de8a7949795dd4fbcb89d87..7c957492f83f377cf744845088bfda643372b4f6 100644 --- a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c +++ b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c @@ -2536,7 +2536,7 @@ static int hns_roce_v2_init(struct hns_roce_dev *hr_dev) hns_roce_free_link_table(hr_dev, &priv->tsq); err_tsq_init_failed: - free_page(hr_dev->reset_page); + free_page((unsigned long)hr_dev->reset_page); return ret; } @@ -2550,7 +2550,7 @@ static void hns_roce_v2_exit(struct hns_roce_dev *hr_dev) hns_roce_free_link_table(hr_dev, &priv->tpq); hns_roce_free_link_table(hr_dev, &priv->tsq); - free_page(hr_dev->reset_page); + free_page((unsigned long)hr_dev->reset_page); } static int hns_roce_query_mbox_status(struct hns_roce_dev *hr_dev) diff --git a/drivers/infiniband/hw/hns/hns_roce_main.c b/drivers/infiniband/hw/hns/hns_roce_main.c index c7b9a4a8ab367f1b6af5d7507efcd06b2856cd7d..76e5b7e1001a6e31dc63ecc662054c68bd4726f4 100644 --- a/drivers/infiniband/hw/hns/hns_roce_main.c +++ b/drivers/infiniband/hw/hns/hns_roce_main.c @@ -660,8 +660,8 @@ static int hns_roce_mmap(struct ib_ucontext *context, if (hr_dev->reset_page) if (remap_pfn_range(vma, vma->vm_start, - virt_to_pfn(hr_dev->reset_page), - PAGE_SIZE, vma->vm_page_prot)) { + page_to_pfn(virt_to_page(hr_dev->reset_page)), + PAGE_SIZE, vma->vm_page_prot)) { dev_err(hr_dev->dev, "mmap reset page failed.\n"); return -EAGAIN;