diff options
Diffstat (limited to 'arch/s390/mm/fault.c')
-rw-r--r-- | arch/s390/mm/fault.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/s390/mm/fault.c b/arch/s390/mm/fault.c index 811937bb90be..9065d5aa3932 100644 --- a/arch/s390/mm/fault.c +++ b/arch/s390/mm/fault.c | |||
@@ -374,6 +374,12 @@ static noinline void do_fault_error(struct pt_regs *regs, int fault) | |||
374 | do_no_context(regs); | 374 | do_no_context(regs); |
375 | else | 375 | else |
376 | pagefault_out_of_memory(); | 376 | pagefault_out_of_memory(); |
377 | } else if (fault & VM_FAULT_SIGSEGV) { | ||
378 | /* Kernel mode? Handle exceptions or die */ | ||
379 | if (!user_mode(regs)) | ||
380 | do_no_context(regs); | ||
381 | else | ||
382 | do_sigsegv(regs, SEGV_MAPERR); | ||
377 | } else if (fault & VM_FAULT_SIGBUS) { | 383 | } else if (fault & VM_FAULT_SIGBUS) { |
378 | /* Kernel mode? Handle exceptions or die */ | 384 | /* Kernel mode? Handle exceptions or die */ |
379 | if (!user_mode(regs)) | 385 | if (!user_mode(regs)) |