aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/sh/include/asm/fixmap.h2
-rw-r--r--arch/sh/mm/fault.c4
2 files changed, 3 insertions, 3 deletions
diff --git a/arch/sh/include/asm/fixmap.h b/arch/sh/include/asm/fixmap.h
index 41cda1264bb0..cbe0186b6794 100644
--- a/arch/sh/include/asm/fixmap.h
+++ b/arch/sh/include/asm/fixmap.h
@@ -94,7 +94,7 @@ extern void __clear_fixmap(enum fixed_addresses idx, pgprot_t flags);
* at the top of mem..
*/
#ifdef CONFIG_SUPERH32
-#define FIXADDR_TOP (P3_ADDR_MAX - PAGE_SIZE)
+#define FIXADDR_TOP (P4SEG - PAGE_SIZE)
#else
#define FIXADDR_TOP ((unsigned long)(-PAGE_SIZE))
#endif
diff --git a/arch/sh/mm/fault.c b/arch/sh/mm/fault.c
index 16799f920f90..b0345f09c197 100644
--- a/arch/sh/mm/fault.c
+++ b/arch/sh/mm/fault.c
@@ -169,8 +169,8 @@ static noinline int vmalloc_fault(unsigned long address)
pmd_t *pmd_k;
pte_t *pte_k;
- /* Make sure we are in vmalloc/module area: */
- if (!is_vmalloc_addr((void *)address))
+ /* Make sure we are in vmalloc/module/P3 area: */
+ if (!(address >= P3SEG && address < P3_ADDR_MAX))
return -1;
/*