diff options
Diffstat (limited to 'arch/mips/mm/fault.c')
-rw-r--r-- | arch/mips/mm/fault.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/arch/mips/mm/fault.c b/arch/mips/mm/fault.c index f956ecbb8136..e97a7a2fb2c0 100644 --- a/arch/mips/mm/fault.c +++ b/arch/mips/mm/fault.c | |||
@@ -58,11 +58,17 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long write, | |||
58 | * only copy the information from the master page table, | 58 | * only copy the information from the master page table, |
59 | * nothing more. | 59 | * nothing more. |
60 | */ | 60 | */ |
61 | #ifdef CONFIG_64BIT | ||
62 | # define VMALLOC_FAULT_TARGET no_context | ||
63 | #else | ||
64 | # define VMALLOC_FAULT_TARGET vmalloc_fault | ||
65 | #endif | ||
66 | |||
61 | if (unlikely(address >= VMALLOC_START && address <= VMALLOC_END)) | 67 | if (unlikely(address >= VMALLOC_START && address <= VMALLOC_END)) |
62 | goto vmalloc_fault; | 68 | goto VMALLOC_FAULT_TARGET; |
63 | #ifdef MODULE_START | 69 | #ifdef MODULE_START |
64 | if (unlikely(address >= MODULE_START && address < MODULE_END)) | 70 | if (unlikely(address >= MODULE_START && address < MODULE_END)) |
65 | goto vmalloc_fault; | 71 | goto VMALLOC_FAULT_TARGET; |
66 | #endif | 72 | #endif |
67 | 73 | ||
68 | /* | 74 | /* |
@@ -203,6 +209,7 @@ do_sigbus: | |||
203 | force_sig_info(SIGBUS, &info, tsk); | 209 | force_sig_info(SIGBUS, &info, tsk); |
204 | 210 | ||
205 | return; | 211 | return; |
212 | #ifndef CONFIG_64BIT | ||
206 | vmalloc_fault: | 213 | vmalloc_fault: |
207 | { | 214 | { |
208 | /* | 215 | /* |
@@ -241,4 +248,5 @@ vmalloc_fault: | |||
241 | goto no_context; | 248 | goto no_context; |
242 | return; | 249 | return; |
243 | } | 250 | } |
251 | #endif | ||
244 | } | 252 | } |