From: Ingo Molnar Date: Wed, 30 Jan 2008 12:34:02 +0000 (+0100) Subject: x86: change 64-bit __change_page_attr() to struct page X-Git-Tag: v2.6.25-rc1~1143^2~91 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0d82494ebd256bfff2336689271367f9284b4865;p=linux-2.6 x86: change 64-bit __change_page_attr() to struct page Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner --- diff --git a/arch/x86/mm/pageattr_64.c b/arch/x86/mm/pageattr_64.c index 5eff244c16..5a03fb5fd5 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);