From: Fanhua Li <lifanhua5@huawei.com> Signed-off-by: Fanhua Li <lifanhua5@huawei.com> --- mm/share_pool.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/mm/share_pool.c b/mm/share_pool.c index 5f0e444869..9de856a451 100644 --- a/mm/share_pool.c +++ b/mm/share_pool.c @@ -2209,8 +2209,7 @@ static int sp_vma_populate_pages(struct vm_area_struct *vma, struct sp_area *spa static int sp_vma_populate_remote_pages(struct vm_area_struct *vma, struct sp_remote_area *spra, unsigned long uaddr, unsigned long size) { - /* Currently, PMD_SIZE is the only page size for remote page mapping */ - unsigned long page_size = PMD_SIZE; + unsigned long page_size = spra->page_size; unsigned long pfn; int i = 0; int ret; @@ -3587,7 +3586,7 @@ static struct sp_area *sp_area_alloc_by_spra(struct sp_group *spg, spa->va_start = spra->va_start; spa->va_end = spra->va_end; spa->real_size = spra->real_size; - spa->is_hugepage = true; + spa->is_hugepage = (spra->page_size != PAGE_SIZE); spa->type = SPA_TYPE_REMOTE; spa->spg = spg; spa->spra = spra; @@ -3702,7 +3701,7 @@ static int __register_remote(int spg_id, unsigned long va, return -EOPNOTSUPP; } - if (unlikely(page_size != PMD_SIZE)) { + if (unlikely(page_size != PMD_SIZE && page_size != PAGE_SIZE)) { pr_err_ratelimited("register remote failed, invalid page_size 0x%lx\n", page_size); return -EINVAL; } -- 2.43.0