diff options
58 files changed, 901 insertions, 1077 deletions
diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c index e007887a33b0..926c2cc4facc 100644 --- a/arch/x86/boot/compressed/eboot.c +++ b/arch/x86/boot/compressed/eboot.c | |||
| @@ -1058,7 +1058,7 @@ struct boot_params *efi_main(struct efi_config *c, | |||
| 1058 | desc->s = DESC_TYPE_CODE_DATA; | 1058 | desc->s = DESC_TYPE_CODE_DATA; |
| 1059 | desc->dpl = 0; | 1059 | desc->dpl = 0; |
| 1060 | desc->p = 1; | 1060 | desc->p = 1; |
| 1061 | desc->limit = 0xf; | 1061 | desc->limit1 = 0xf; |
| 1062 | desc->avl = 0; | 1062 | desc->avl = 0; |
| 1063 | desc->l = 0; | 1063 | desc->l = 0; |
| 1064 | desc->d = SEG_OP_SIZE_32BIT; | 1064 | desc->d = SEG_OP_SIZE_32BIT; |
| @@ -1078,7 +1078,7 @@ struct boot_params *efi_main(struct efi_config *c, | |||
| 1078 | desc->s = DESC_TYPE_CODE_DATA; | 1078 | desc->s = DESC_TYPE_CODE_DATA; |
| 1079 | desc->dpl = 0; | 1079 | desc->dpl = 0; |
| 1080 | desc->p = 1; | 1080 | desc->p = 1; |
| 1081 | desc->limit = 0xf; | 1081 | desc->limit1 = 0xf; |
| 1082 | desc->avl = 0; | 1082 | desc->avl = 0; |
| 1083 | if (IS_ENABLED(CONFIG_X86_64)) { | 1083 | if (IS_ENABLED(CONFIG_X86_64)) { |
| 1084 | desc->l = 1; | 1084 | desc->l = 1; |
| @@ -1099,7 +1099,7 @@ struct boot_params *efi_main(struct efi_config *c, | |||
| 1099 | desc->s = DESC_TYPE_CODE_DATA; | 1099 | desc->s = DESC_TYPE_CODE_DATA; |
| 1100 | desc->dpl = 0; | 1100 | desc->dpl = 0; |
| 1101 | desc->p = 1; | 1101 | desc->p = 1; |
| 1102 | desc->limit = 0xf; | 1102 | desc->limit1 = 0xf; |
| 1103 | desc->avl = 0; | 1103 | desc->avl = 0; |
| 1104 | desc->l = 0; | 1104 | desc->l = 0; |
| 1105 | desc->d = SEG_OP_SIZE_32BIT; | 1105 | desc->d = SEG_OP_SIZE_32BIT; |
| @@ -1116,7 +1116,7 @@ struct boot_params *efi_main(struct efi_config *c, | |||
| 1116 | desc->s = 0; | 1116 | desc->s = 0; |
| 1117 | desc->dpl = 0; | 1117 | desc->dpl = 0; |
| 1118 | desc->p = 1; | 1118 | desc->p = 1; |
| 1119 | desc->limit = 0x0; | 1119 | desc->limit1 = 0x0; |
| 1120 | desc->avl = 0; | 1120 | desc->avl = 0; |
| 1121 | desc->l = 0; | 1121 | desc->l = 0; |
| 1122 | desc->d = 0; | 1122 | desc->d = 0; |
diff --git a/arch/x86/entry/entry_32.S b/arch/x86/entry/entry_32.S index 48ef7bb32c42..8a13d468635a 100644 --- a/arch/x86/entry/entry_32.S +++ b/arch/x86/entry/entry_32.S | |||
| @@ -673,16 +673,8 @@ ENTRY(name) \ | |||
| 673 | jmp ret_from_intr; \ | 673 | jmp ret_from_intr; \ |
| 674 | ENDPROC(name) | 674 | ENDPROC(name) |
| 675 | 675 | ||
| 676 | |||
| 677 | #ifdef CONFIG_TRACING | ||
| 678 | # define TRACE_BUILD_INTERRUPT(name, nr) BUILD_INTERRUPT3(trace_##name, nr, smp_trace_##name) | ||
| 679 | #else | ||
| 680 | # define TRACE_BUILD_INTERRUPT(name, nr) | ||
| 681 | #endif | ||
| 682 | |||
| 683 | #define BUILD_INTERRUPT(name, nr) \ | 676 | #define BUILD_INTERRUPT(name, nr) \ |
| 684 | BUILD_INTERRUPT3(name, nr, smp_##name); \ | 677 | BUILD_INTERRUPT3(name, nr, smp_##name); \ |
| 685 | TRACE_BUILD_INTERRUPT(name, nr) | ||
| 686 | 678 | ||
| 687 | /* The include is where all of the SMP etc. interrupts come from */ | 679 | /* The include is where all of the SMP etc. interrupts come from */ |
| 688 | #include <asm/entry_arch.h> | 680 | #include <asm/entry_arch.h> |
| @@ -880,25 +872,17 @@ ENTRY(xen_failsafe_callback) | |||
| 880 | ENDPROC(xen_failsafe_callback) | 872 | ENDPROC(xen_failsafe_callback) |
| 881 | 873 | ||
| 882 | BUILD_INTERRUPT3(xen_hvm_callback_vector, HYPERVISOR_CALLBACK_VECTOR, | 874 | BUILD_INTERRUPT3(xen_hvm_callback_vector, HYPERVISOR_CALLBACK_VECTOR, |
| 883 | xen_evtchn_do_upcall) | 875 | xen_evtchn_do_upcall) |
| 884 | 876 | ||
| 885 | #endif /* CONFIG_XEN */ | 877 | #endif /* CONFIG_XEN */ |
| 886 | 878 | ||
| 887 | #if IS_ENABLED(CONFIG_HYPERV) | 879 | #if IS_ENABLED(CONFIG_HYPERV) |
| 888 | 880 | ||
| 889 | BUILD_INTERRUPT3(hyperv_callback_vector, HYPERVISOR_CALLBACK_VECTOR, | 881 | BUILD_INTERRUPT3(hyperv_callback_vector, HYPERVISOR_CALLBACK_VECTOR, |
| 890 | hyperv_vector_handler) | 882 | hyperv_vector_handler) |
| 891 | 883 | ||
| 892 | #endif /* CONFIG_HYPERV */ | 884 | #endif /* CONFIG_HYPERV */ |
| 893 | 885 | ||
| 894 | #ifdef CONFIG_TRACING | ||
| 895 | ENTRY(trace_page_fault) | ||
| 896 | ASM_CLAC | ||
| 897 | pushl $trace_do_page_fault | ||
| 898 | jmp common_exception | ||
| 899 | END(trace_page_fault) | ||
| 900 | #endif | ||
| 901 | |||
| 902 | ENTRY(page_fault) | 886 | ENTRY(page_fault) |
| 903 | ASM_CLAC | 887 | ASM_CLAC |
| 904 | pushl $do_page_fault | 888 | pushl $do_page_fault |
diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S index ca0b250eefc4..49167258d587 100644 --- a/arch/x86/entry/entry_64.S +++ b/arch/x86/entry/entry_64.S | |||
| @@ -748,18 +748,6 @@ ENTRY(\sym) | |||
| 748 | END(\sym) | 748 | END(\sym) |
| 749 | .endm | 749 | .endm |
| 750 | 750 | ||
| 751 | #ifdef CONFIG_TRACING | ||
| 752 | #define trace(sym) trace_##sym | ||
| 753 | #define smp_trace(sym) smp_trace_##sym | ||
| 754 | |||
| 755 | .macro trace_apicinterrupt num sym | ||
| 756 | apicinterrupt3 \num trace(\sym) smp_trace(\sym) | ||
| 757 | .endm | ||
| 758 | #else | ||
| 759 | .macro trace_apicinterrupt num sym do_sym | ||
| 760 | .endm | ||
| 761 | #endif | ||
| 762 | |||
| 763 | /* Make sure APIC interrupt handlers end up in the irqentry section: */ | 751 | /* Mak |
