mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-23 20:53:53 +08:00
x86: 64-bit pageattr.c, prepare for unification
Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
parent
d9db847f29
commit
44136717e0
@ -123,14 +123,15 @@ int change_page_attr_addr(unsigned long address, int numpages, pgprot_t prot)
|
||||
{
|
||||
int err = 0, kernel_map = 0, i;
|
||||
|
||||
#ifdef CONFIG_X86_64
|
||||
if (address >= __START_KERNEL_map &&
|
||||
address < __START_KERNEL_map + KERNEL_TEXT_SIZE) {
|
||||
|
||||
address = (unsigned long)__va(__pa(address));
|
||||
kernel_map = 1;
|
||||
}
|
||||
#endif
|
||||
|
||||
down_write(&init_mm.mmap_sem);
|
||||
for (i = 0; i < numpages; i++, address += PAGE_SIZE) {
|
||||
unsigned long pfn = __pa(address) >> PAGE_SHIFT;
|
||||
|
||||
@ -139,8 +140,11 @@ int change_page_attr_addr(unsigned long address, int numpages, pgprot_t prot)
|
||||
if (err)
|
||||
break;
|
||||
}
|
||||
/* Handle kernel mapping too which aliases part of the
|
||||
* lowmem */
|
||||
#ifdef CONFIG_X86_64
|
||||
/*
|
||||
* Handle kernel mapping too which aliases part of
|
||||
* lowmem:
|
||||
*/
|
||||
if (__pa(address) < KERNEL_TEXT_SIZE) {
|
||||
unsigned long addr2;
|
||||
pgprot_t prot2;
|
||||
@ -150,8 +154,8 @@ int change_page_attr_addr(unsigned long address, int numpages, pgprot_t prot)
|
||||
prot2 = pte_pgprot(pte_mkexec(pfn_pte(0, prot)));
|
||||
err = __change_page_attr(addr2, pfn_to_page(pfn), prot2);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
up_write(&init_mm.mmap_sem);
|
||||
|
||||
return err;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user