diff options
-rw-r--r-- | arch/x86/mm/pageattr_64.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/x86/mm/pageattr_64.c b/arch/x86/mm/pageattr_64.c index 5eff244c16d..5a03fb5fd53 100644 --- a/arch/x86/mm/pageattr_64.c +++ b/arch/x86/mm/pageattr_64.c @@ -67,7 +67,7 @@ split_large_page(unsigned long address, pgprot_t ref_prot) } static int -__change_page_attr(unsigned long address, unsigned long pfn, pgprot_t prot) +__change_page_attr(unsigned long address, struct page *page, pgprot_t prot) { struct page *kpte_page; pte_t *kpte; @@ -86,7 +86,7 @@ repeat: prot = canon_pgprot(prot); if (level == 4) { - set_pte(kpte, pfn_pte(pfn, prot)); + set_pte(kpte, mk_pte(page, prot)); } else { /* * split_large_page will take the reference for this @@ -135,7 +135,7 @@ int change_page_attr_addr(unsigned long address, int numpages, pgprot_t prot) unsigned long pfn = __pa(address) >> PAGE_SHIFT; if (!kernel_map || pte_present(pfn_pte(0, prot))) { - err = __change_page_attr(address, pfn, prot); + err = __change_page_attr(address, pfn_to_page(pfn), prot); if (err) break; } @@ -148,7 +148,7 @@ int change_page_attr_addr(unsigned long address, int numpages, pgprot_t prot) addr2 = __START_KERNEL_map + __pa(address); /* Make sure the kernel mappings stay executable */ prot2 = pte_pgprot(pte_mkexec(pfn_pte(0, prot))); - err = __change_page_attr(addr2, pfn, prot2); + err = __change_page_attr(addr2, pfn_to_page(pfn), prot2); } } up_write(&init_mm.mmap_sem); |