x86: add _PAGE_IOMAP pte flag for IO mappings
Use one of the software-defined PTE bits to indicate that a mapping is intended for an IO address. On native hardware this is irrelevent, since a physical address is a physical address. But in a virtual environment, physical addresses are also virtualized, so there needs to be some way to distinguish between pseudo-physical addresses and actual hardware addresses; _PAGE_IOMAP indicates this intent. By default, __supported_pte_mask masks out _PAGE_IOMAP, so it doesn't even appear in the final pagetable. Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:

committed by
Ingo Molnar

parent
07bb2f6236
commit
be43d72835
@@ -242,16 +242,16 @@ static void __iomem *__ioremap_caller(resource_size_t phys_addr,
|
||||
switch (prot_val) {
|
||||
case _PAGE_CACHE_UC:
|
||||
default:
|
||||
prot = PAGE_KERNEL_NOCACHE;
|
||||
prot = PAGE_KERNEL_IO_NOCACHE;
|
||||
break;
|
||||
case _PAGE_CACHE_UC_MINUS:
|
||||
prot = PAGE_KERNEL_UC_MINUS;
|
||||
prot = PAGE_KERNEL_IO_UC_MINUS;
|
||||
break;
|
||||
case _PAGE_CACHE_WC:
|
||||
prot = PAGE_KERNEL_WC;
|
||||
prot = PAGE_KERNEL_IO_WC;
|
||||
break;
|
||||
case _PAGE_CACHE_WB:
|
||||
prot = PAGE_KERNEL;
|
||||
prot = PAGE_KERNEL_IO;
|
||||
break;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user