diff options
author | Paul Mundt <lethal@linux-sh.org> | 2012-05-18 07:01:16 -0400 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2012-05-18 07:01:16 -0400 |
commit | d8fd35fc586f74b2defe011d3a2bfb507871a407 (patch) | |
tree | b2e897aa01fe879c338880a5b024441db623a01b /arch/sh | |
parent | c3e0af98792f9f1c840dc969f883e46d0ced3e00 (diff) |
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>
Diffstat (limited to 'arch/sh')
-rw-r--r-- | arch/sh/mm/fault.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/sh/mm/fault.c b/arch/sh/mm/fault.c index b0345f09c197..1fc25d85e515 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) | |||
160 | return pmd_k; | 160 | return pmd_k; |
161 | } | 161 | } |
162 | 162 | ||
163 | #ifdef CONFIG_SH_STORE_QUEUES | ||
164 | #define __FAULT_ADDR_LIMIT P3_ADDR_MAX | ||
165 | #else | ||
166 | #define __FAULT_ADDR_LIMIT VMALLOC_END | ||
167 | #endif | ||
168 | |||
163 | /* | 169 | /* |
164 | * Handle a fault on the vmalloc or module mapping area | 170 | * Handle a fault on the vmalloc or module mapping area |
165 | */ | 171 | */ |
@@ -170,7 +176,7 @@ static noinline int vmalloc_fault(unsigned long address) | |||
170 | pte_t *pte_k; | 176 | pte_t *pte_k; |
171 | 177 | ||
172 | /* Make sure we are in vmalloc/module/P3 area: */ | 178 | /* Make sure we are in vmalloc/module/P3 area: */ |
173 | if (!(address >= P3SEG && address < P3_ADDR_MAX)) | 179 | if (!(address >= VMALLOC_START && address < __FAULT_ADDR_LIMIT)) |
174 | return -1; | 180 | return -1; |
175 | 181 | ||
176 | /* | 182 | /* |