From: Thomas Gleixner Date: Wed, 30 Jan 2008 12:34:04 +0000 (+0100) Subject: x86: fix ioremap pgprot inconsistency X-Git-Tag: v2.6.25-rc1~1143^2~69 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=a40343497e8983cdf07fde99c9081ee62b96f745;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. 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 Signed-off-by: Ingo Molnar --- diff --git a/arch/x86/mm/ioremap_32.c b/arch/x86/mm/ioremap_32.c index f8e6c4709cc..18757f058bd 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 return NULL; } - prot = __pgprot(_PAGE_PRESENT | _PAGE_RW | _PAGE_DIRTY - | _PAGE_ACCESSED | flags); + prot = MAKE_GLOBAL(__PAGE_KERNEL | flags); /* * Mappings have to be page-aligned