diff options
Diffstat (limited to 'arch/s390/kernel/traps.c')
| -rw-r--r-- | arch/s390/kernel/traps.c | 29 |
1 files changed, 3 insertions, 26 deletions
diff --git a/arch/s390/kernel/traps.c b/arch/s390/kernel/traps.c index 6b8703ec2ae6..c5bd36fae56b 100644 --- a/arch/s390/kernel/traps.c +++ b/arch/s390/kernel/traps.c | |||
| @@ -57,7 +57,6 @@ int sysctl_userprocess_debug = 0; | |||
| 57 | 57 | ||
| 58 | extern pgm_check_handler_t do_protection_exception; | 58 | extern pgm_check_handler_t do_protection_exception; |
| 59 | extern pgm_check_handler_t do_dat_exception; | 59 | extern pgm_check_handler_t do_dat_exception; |
| 60 | extern pgm_check_handler_t do_pseudo_page_fault; | ||
| 61 | #ifdef CONFIG_PFAULT | 60 | #ifdef CONFIG_PFAULT |
| 62 | extern int pfault_init(void); | 61 | extern int pfault_init(void); |
| 63 | extern void pfault_fini(void); | 62 | extern void pfault_fini(void); |
| @@ -676,20 +675,6 @@ asmlinkage void kernel_stack_overflow(struct pt_regs * regs) | |||
| 676 | panic("Corrupt kernel stack, can't continue."); | 675 | panic("Corrupt kernel stack, can't continue."); |
| 677 | } | 676 | } |
| 678 | 677 | ||
| 679 | #ifndef CONFIG_ARCH_S390X | ||
| 680 | static int | ||
| 681 | pagex_reboot_event(struct notifier_block *this, unsigned long event, void *ptr) | ||
| 682 | { | ||
| 683 | if (MACHINE_IS_VM) | ||
| 684 | cpcmd("SET PAGEX OFF", NULL, 0, NULL); | ||
| 685 | return NOTIFY_DONE; | ||
| 686 | } | ||
| 687 | |||
| 688 | static struct notifier_block pagex_reboot_notifier = { | ||
| 689 | .notifier_call = &pagex_reboot_event, | ||
| 690 | }; | ||
| 691 | #endif | ||
| 692 | |||
| 693 | /* init is done in lowcore.S and head.S */ | 678 | /* init is done in lowcore.S and head.S */ |
| 694 | 679 | ||
| 695 | void __init trap_init(void) | 680 | void __init trap_init(void) |
| @@ -717,9 +702,7 @@ void __init trap_init(void) | |||
| 717 | pgm_check_table[0x11] = &do_dat_exception; | 702 | pgm_check_table[0x11] = &do_dat_exception; |
| 718 | pgm_check_table[0x12] = &translation_exception; | 703 | pgm_check_table[0x12] = &translation_exception; |
| 719 | pgm_check_table[0x13] = &special_op_exception; | 704 | pgm_check_table[0x13] = &special_op_exception; |
| 720 | #ifndef CONFIG_ARCH_S390X | 705 | #ifdef CONFIG_ARCH_S390X |
| 721 | pgm_check_table[0x14] = &do_pseudo_page_fault; | ||
| 722 | #else /* CONFIG_ARCH_S390X */ | ||
| 723 | pgm_check_table[0x38] = &do_dat_exception; | 706 | pgm_check_table[0x38] = &do_dat_exception; |
| 724 | pgm_check_table[0x39] = &do_dat_exception; | 707 | pgm_check_table[0x39] = &do_dat_exception; |
| 725 | pgm_check_table[0x3A] = &do_dat_exception; | 708 | pgm_check_table[0x3A] = &do_dat_exception; |
| @@ -731,12 +714,10 @@ void __init trap_init(void) | |||
| 731 | pgm_check_table[0x40] = &do_monitor_call; | 714 | pgm_check_table[0x40] = &do_monitor_call; |
| 732 | 715 | ||
| 733 | if (MACHINE_IS_VM) { | 716 | if (MACHINE_IS_VM) { |
| 717 | #ifdef CONFIG_PFAULT | ||
| 734 | /* | 718 | /* |
| 735 | * First try to get pfault pseudo page faults going. | 719 | * Try to get pfault pseudo page faults going. |
| 736 | * If this isn't available turn on pagex page faults. | ||
| 737 | */ | 720 | */ |
| 738 | #ifdef CONFIG_PFAULT | ||
| 739 | /* request the 0x2603 external interrupt */ | ||
| 740 | if (register_early_external_interrupt(0x2603, pfault_interrupt, | 721 | if (register_early_external_interrupt(0x2603, pfault_interrupt, |
| 741 | &ext_int_pfault) != 0) | 722 | &ext_int_pfault) != 0) |
| 742 | panic("Couldn't request external interrupt 0x2603"); | 723 | panic("Couldn't request external interrupt 0x2603"); |
| @@ -748,9 +729,5 @@ void __init trap_init(void) | |||
| 748 | unregister_early_external_interrupt(0x2603, pfault_interrupt, | 729 | unregister_early_external_interrupt(0x2603, pfault_interrupt, |
| 749 | &ext_int_pfault); | 730 | &ext_int_pfault); |
| 750 | #endif | 731 | #endif |
| 751 | #ifndef CONFIG_ARCH_S390X | ||
| 752 | register_reboot_notifier(&pagex_reboot_notifier); | ||
| 753 | cpcmd("SET PAGEX ON", NULL, 0, NULL); | ||
| 754 | #endif | ||
| 755 | } | 732 | } |
| 756 | } | 733 | } |
