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 <lethal@linux-sh.org>
diff --git a/arch/sh/mm/fault.c b/arch/sh/mm/fault.c
index b0345f0..1fc25d8 100644
--- a/arch/sh/mm/fault.c
+++ b/arch/sh/mm/fault.c
@@ -160,6 +160,12 @@
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 @@
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;
/*