|
Lines 630-635
Link Here
|
| 630 |
} |
630 |
} |
| 631 |
} |
631 |
} |
| 632 |
|
632 |
|
|
|
633 |
asmlinkage void space_switch_exception(struct pt_regs * regs, long int_code) |
| 634 |
{ |
| 635 |
siginfo_t info; |
| 636 |
|
| 637 |
/* Set user psw back to home space mode. */ |
| 638 |
if (regs->psw.mask & PSW_MASK_PSTATE) |
| 639 |
regs->psw.mask |= PSW_ASC_HOME; |
| 640 |
/* Send SIGILL. */ |
| 641 |
info.si_signo = SIGILL; |
| 642 |
info.si_errno = 0; |
| 643 |
info.si_code = ILL_PRVOPC; |
| 644 |
info.si_addr = get_check_address(regs); |
| 645 |
do_trap(int_code, SIGILL, "space switch event", regs, &info); |
| 646 |
} |
| 647 |
|
| 633 |
asmlinkage void kernel_stack_overflow(struct pt_regs * regs) |
648 |
asmlinkage void kernel_stack_overflow(struct pt_regs * regs) |
| 634 |
{ |
649 |
{ |
| 635 |
die("Kernel stack overflow", regs, 0); |
650 |
die("Kernel stack overflow", regs, 0); |
|
Lines 673-679
Link Here
|
| 673 |
pgm_check_table[0x3B] = &do_dat_exception; |
688 |
pgm_check_table[0x3B] = &do_dat_exception; |
| 674 |
#endif /* CONFIG_ARCH_S390X */ |
689 |
#endif /* CONFIG_ARCH_S390X */ |
| 675 |
pgm_check_table[0x15] = &operand_exception; |
690 |
pgm_check_table[0x15] = &operand_exception; |
| 676 |
pgm_check_table[0x1C] = &privileged_op; |
691 |
pgm_check_table[0x1C] = &space_switch_exception; |
| 677 |
pgm_check_table[0x1D] = &hfp_sqrt_exception; |
692 |
pgm_check_table[0x1D] = &hfp_sqrt_exception; |
| 678 |
pgm_check_table[0x40] = &do_monitor_call; |
693 |
pgm_check_table[0x40] = &do_monitor_call; |
| 679 |
|
694 |
|