From: Paul Mundt Date: Fri, 18 May 2012 11:01:16 +0000 (+0900) Subject: sh64: Fix up vmalloc fault range check. X-Git-Tag: v3.5-rc1~134^2~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d8fd35fc586f74b2defe011d3a2bfb507871a407;p=thirdparty%2Fkernel%2Fstable.git sh64: Fix up vmalloc fault range check. With the previous attempt reverted this switches to conditionalizing the end address. Nominally VMALLOC_END, but extended for P3_ADDR_MAX in the store queue case. Signed-off-by: Paul Mundt --- diff --git a/arch/sh/mm/fault.c b/arch/sh/mm/fault.c index b0345f09c1979..1fc25d85e5154 100644 --- a/arch/sh/mm/fault.c +++ b/arch/sh/mm/fault.c @@ -160,6 +160,12 @@ static inline pmd_t *vmalloc_sync_one(pgd_t *pgd, unsigned long address) return pmd_k; } +#ifdef CONFIG_SH_STORE_QUEUES +#define __FAULT_ADDR_LIMIT P3_ADDR_MAX +#else +#define __FAULT_ADDR_LIMIT VMALLOC_END +#endif + /* * Handle a fault on the vmalloc or module mapping area */ @@ -170,7 +176,7 @@ static noinline int vmalloc_fault(unsigned long address) pte_t *pte_k; /* Make sure we are in vmalloc/module/P3 area: */ - if (!(address >= P3SEG && address < P3_ADDR_MAX)) + if (!(address >= VMALLOC_START && address < __FAULT_ADDR_LIMIT)) return -1; /*