diff options
Diffstat (limited to 'arch/mn10300/mm/fault.c')
-rw-r--r-- | arch/mn10300/mm/fault.c | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/arch/mn10300/mm/fault.c b/arch/mn10300/mm/fault.c index 81f153fa51b4..59c3da49d9d9 100644 --- a/arch/mn10300/mm/fault.c +++ b/arch/mn10300/mm/fault.c | |||
@@ -39,10 +39,6 @@ void bust_spinlocks(int yes) | |||
39 | { | 39 | { |
40 | if (yes) { | 40 | if (yes) { |
41 | oops_in_progress = 1; | 41 | oops_in_progress = 1; |
42 | #ifdef CONFIG_SMP | ||
43 | /* Many serial drivers do __global_cli() */ | ||
44 | global_irq_lock = 0; | ||
45 | #endif | ||
46 | } else { | 42 | } else { |
47 | int loglevel_save = console_loglevel; | 43 | int loglevel_save = console_loglevel; |
48 | #ifdef CONFIG_VT | 44 | #ifdef CONFIG_VT |
@@ -100,8 +96,6 @@ static void print_pagetable_entries(pgd_t *pgdir, unsigned long address) | |||
100 | } | 96 | } |
101 | #endif | 97 | #endif |
102 | 98 | ||
103 | asmlinkage void monitor_signal(struct pt_regs *); | ||
104 | |||
105 | /* | 99 | /* |
106 | * This routine handles page faults. It determines the address, | 100 | * This routine handles page faults. It determines the address, |
107 | * and the problem, and then passes it off to one of the appropriate | 101 | * and the problem, and then passes it off to one of the appropriate |
@@ -279,7 +273,6 @@ good_area: | |||
279 | */ | 273 | */ |
280 | bad_area: | 274 | bad_area: |
281 | up_read(&mm->mmap_sem); | 275 | up_read(&mm->mmap_sem); |
282 | monitor_signal(regs); | ||
283 | 276 | ||
284 | /* User mode accesses just cause a SIGSEGV */ | 277 | /* User mode accesses just cause a SIGSEGV */ |
285 | if ((fault_code & MMUFCR_xFC_ACCESS) == MMUFCR_xFC_ACCESS_USR) { | 278 | if ((fault_code & MMUFCR_xFC_ACCESS) == MMUFCR_xFC_ACCESS_USR) { |
@@ -292,7 +285,6 @@ bad_area: | |||
292 | } | 285 | } |
293 | 286 | ||
294 | no_context: | 287 | no_context: |
295 | monitor_signal(regs); | ||
296 | /* Are we prepared to handle this kernel fault? */ | 288 | /* Are we prepared to handle this kernel fault? */ |
297 | if (fixup_exception(regs)) | 289 | if (fixup_exception(regs)) |
298 | return; | 290 | return; |
@@ -338,14 +330,13 @@ no_context: | |||
338 | */ | 330 | */ |
339 | out_of_memory: | 331 | out_of_memory: |
340 | up_read(&mm->mmap_sem); | 332 | up_read(&mm->mmap_sem); |
341 | if ((fault_code & MMUFCR_xFC_ACCESS) != MMUFCR_xFC_ACCESS_USR) | 333 | printk(KERN_ALERT "VM: killing process %s\n", tsk->comm); |
342 | goto no_context; | 334 | if ((fault_code & MMUFCR_xFC_ACCESS) == MMUFCR_xFC_ACCESS_USR) |
343 | pagefault_out_of_memory(); | 335 | do_exit(SIGKILL); |
344 | return; | 336 | goto no_context; |
345 | 337 | ||
346 | do_sigbus: | 338 | do_sigbus: |
347 | up_read(&mm->mmap_sem); | 339 | up_read(&mm->mmap_sem); |
348 | monitor_signal(regs); | ||
349 | 340 | ||
350 | /* | 341 | /* |
351 | * Send a sigbus, regardless of whether we were in kernel | 342 | * Send a sigbus, regardless of whether we were in kernel |