From: Thomas Gleixner Date: Wed, 30 Jan 2008 12:34:05 +0000 (+0100) Subject: x86: fix ioremap pgprot inconsistency X-Git-Tag: v2.6.25-rc1~1143^2~68 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=1aaf74e919be54be0023c3124923fb537c7fb772;p=linux-2.6-omap-h63xx.git 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 Signed-off-by: Ingo Molnar --- diff --git a/arch/x86/mm/ioremap_64.c b/arch/x86/mm/ioremap_64.c index 0a05f024dc2..a37556124c8 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, * Must use a address here and not struct page because the phys addr * can be a in hole between nodes and not have an memmap entry. */ - err = change_page_attr_addr(vaddr,npages,__pgprot(__PAGE_KERNEL|flags)); + err = change_page_attr_addr(vaddr,npages,MAKE_GLOBAL(__PAGE_KERNEL|flags)); if (!err) global_flush_tlb(); } @@ -91,7 +91,7 @@ void __iomem * __ioremap(unsigned long phys_addr, unsigned long size, unsigned l if (phys_addr >= ISA_START_ADDRESS && last_addr < ISA_END_ADDRESS) return (__force void __iomem *)phys_to_virt(phys_addr); - pgprot = __pgprot(__PAGE_KERNEL_EXEC | _PAGE_GLOBAL | flags); + pgprot = MAKE_GLOBAL(__PAGE_KERNEL | flags); /* * Mappings have to be page-aligned */