diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2008-01-30 07:34:04 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-01-30 07:34:04 -0500 |
commit | a40343497e8983cdf07fde99c9081ee62b96f745 (patch) | |
tree | a22f3b40f051bf1efa1a4a5cde5bac34288e8249 /arch/x86 | |
parent | ed724be65fa18833244d81b484e425fc838837fa (diff) |
x86: fix ioremap pgprot inconsistency
The pgprot flags which are handed into ioremap_page_range() are
different to those which are set in change_page_attr(). The
ioremap_page_range flags are executable, while the c_p_a flags are
not. Also make the mappings global (which is a NOP currently on 32bit,
although CPUs from PPRO+ onwards support it, but that's a separate
fix.)
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86')
-rw-r--r-- | arch/x86/mm/ioremap_32.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/arch/x86/mm/ioremap_32.c b/arch/x86/mm/ioremap_32.c index f8e6c4709cc2..18757f058bda 100644 --- a/arch/x86/mm/ioremap_32.c +++ b/arch/x86/mm/ioremap_32.c | |||
@@ -67,8 +67,7 @@ void __iomem * __ioremap(unsigned long phys_addr, unsigned long size, unsigned l | |||
67 | return NULL; | 67 | return NULL; |
68 | } | 68 | } |
69 | 69 | ||
70 | prot = __pgprot(_PAGE_PRESENT | _PAGE_RW | _PAGE_DIRTY | 70 | prot = MAKE_GLOBAL(__PAGE_KERNEL | flags); |
71 | | _PAGE_ACCESSED | flags); | ||
72 | 71 | ||
73 | /* | 72 | /* |
74 | * Mappings have to be page-aligned | 73 | * Mappings have to be page-aligned |