Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 125239
b: refs/heads/master
c: 2340b62
h: refs/heads/master
i:
  125237: 4732f8a
  125235: 7db2ad2
  125231: 6adb81c
v: v3
  • Loading branch information
Eduardo Habkost authored and Avi Kivity committed Dec 31, 2008
1 parent 2fc612d commit 3f4a5d5
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 0f3e9eeba0ea212bbea88790729d054b700ab91e
refs/heads/master: 2340b62f77c782c305e6ae7748675a638436d1ef
18 changes: 18 additions & 0 deletions trunk/arch/x86/kernel/crash.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
#include <linux/kdebug.h>
#include <asm/smp.h>
#include <asm/reboot.h>
#include <asm/virtext.h>

#include <mach_ipi.h>

Expand All @@ -49,6 +50,15 @@ static void kdump_nmi_callback(int cpu, struct die_args *args)
#endif
crash_save_cpu(regs, cpu);

/* Disable VMX or SVM if needed.
*
* We need to disable virtualization on all CPUs.
* Having VMX or SVM enabled on any CPU may break rebooting
* after the kdump kernel has finished its task.
*/
cpu_emergency_vmxoff();
cpu_emergency_svm_disable();

disable_local_APIC();
}

Expand Down Expand Up @@ -80,6 +90,14 @@ void native_machine_crash_shutdown(struct pt_regs *regs)
local_irq_disable();

kdump_nmi_shootdown_cpus();

/* Booting kdump kernel with VMX or SVM enabled won't work,
* because (among other limitations) we can't disable paging
* with the virt flags.
*/
cpu_emergency_vmxoff();
cpu_emergency_svm_disable();

lapic_shutdown();
#if defined(CONFIG_X86_IO_APIC)
disable_IO_APIC();
Expand Down

0 comments on commit 3f4a5d5

Please sign in to comment.