diff options
Diffstat (limited to 'arch/x86/kernel/crash.c')
-rw-r--r-- | arch/x86/kernel/crash.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/x86/kernel/crash.c b/arch/x86/kernel/crash.c index 2c1910f6717e..58f34319b29a 100644 --- a/arch/x86/kernel/crash.c +++ b/arch/x86/kernel/crash.c | |||
@@ -35,6 +35,7 @@ | |||
35 | #include <asm/cpu.h> | 35 | #include <asm/cpu.h> |
36 | #include <asm/reboot.h> | 36 | #include <asm/reboot.h> |
37 | #include <asm/virtext.h> | 37 | #include <asm/virtext.h> |
38 | #include <asm/intel_pt.h> | ||
38 | 39 | ||
39 | /* Alignment required for elf header segment */ | 40 | /* Alignment required for elf header segment */ |
40 | #define ELF_CORE_HEADER_ALIGN 4096 | 41 | #define ELF_CORE_HEADER_ALIGN 4096 |
@@ -125,6 +126,11 @@ static void kdump_nmi_callback(int cpu, struct pt_regs *regs) | |||
125 | cpu_emergency_vmxoff(); | 126 | cpu_emergency_vmxoff(); |
126 | cpu_emergency_svm_disable(); | 127 | cpu_emergency_svm_disable(); |
127 | 128 | ||
129 | /* | ||
130 | * Disable Intel PT to stop its logging | ||
131 | */ | ||
132 | cpu_emergency_stop_pt(); | ||
133 | |||
128 | disable_local_APIC(); | 134 | disable_local_APIC(); |
129 | } | 135 | } |
130 | 136 | ||
@@ -169,6 +175,11 @@ void native_machine_crash_shutdown(struct pt_regs *regs) | |||
169 | cpu_emergency_vmxoff(); | 175 | cpu_emergency_vmxoff(); |
170 | cpu_emergency_svm_disable(); | 176 | cpu_emergency_svm_disable(); |
171 | 177 | ||
178 | /* | ||
179 | * Disable Intel PT to stop its logging | ||
180 | */ | ||
181 | cpu_emergency_stop_pt(); | ||
182 | |||
172 | #ifdef CONFIG_X86_IO_APIC | 183 | #ifdef CONFIG_X86_IO_APIC |
173 | /* Prevent crash_kexec() from deadlocking on ioapic_lock. */ | 184 | /* Prevent crash_kexec() from deadlocking on ioapic_lock. */ |
174 | ioapic_zap_locks(); | 185 | ioapic_zap_locks(); |