diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2008-01-30 07:34:05 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-01-30 07:34:05 -0500 |
commit | 1aaf74e919be54be0023c3124923fb537c7fb772 (patch) | |
tree | 7e84ffdb346a4b1f8efa240570549e3bf74bb2a8 /arch/x86 | |
parent | a40343497e8983cdf07fde99c9081ee62b96f745 (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.
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_64.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/x86/mm/ioremap_64.c b/arch/x86/mm/ioremap_64.c index 0a05f024dc22..a37556124c86 100644 --- a/arch/x86/mm/ioremap_64.c +++ b/arch/x86/mm/ioremap_64.c | |||
@@ -53,7 +53,7 @@ ioremap_change_attr(unsigned long phys_addr, unsigned long size, | |||
53 | * Must use a address here and not struct page because the phys addr | 53 | * Must use a address here and not struct page because the phys addr |
54 | * can be a in hole between nodes and not have an memmap entry. | 54 | * can be a in hole between nodes and not have an memmap entry. |
55 | */ | 55 | */ |
56 | err = change_page_attr_addr(vaddr,npages,__pgprot(__PAGE_KERNEL|flags)); | 56 | err = change_page_attr_addr(vaddr,npages,MAKE_GLOBAL(__PAGE_KERNEL|flags)); |
57 | if (!err) | 57 | if (!err) |
58 | global_flush_tlb(); | 58 | global_flush_tlb(); |
59 | } | 59 | } |
@@ -91,7 +91,7 @@ void __iomem * __ioremap(unsigned long phys_addr, unsigned long size, unsigned l | |||
91 | if (phys_addr >= ISA_START_ADDRESS && last_addr < ISA_END_ADDRESS) | 91 | if (phys_addr >= ISA_START_ADDRESS && last_addr < ISA_END_ADDRESS) |
92 | return (__force void __iomem *)phys_to_virt(phys_addr); | 92 | return (__force void __iomem *)phys_to_virt(phys_addr); |
93 | 93 | ||
94 | pgprot = __pgprot(__PAGE_KERNEL_EXEC | _PAGE_GLOBAL | flags); | 94 | pgprot = MAKE_GLOBAL(__PAGE_KERNEL | flags); |
95 | /* | 95 | /* |
96 | * Mappings have to be page-aligned | 96 | * Mappings have to be page-aligned |
97 | */ | 97 | */ |