[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1225915018-6548-11-git-send-email-ehabkost@redhat.com>
Date: Wed, 5 Nov 2008 17:56:53 -0200
From: Eduardo Habkost <ehabkost@...hat.com>
To: Avi Kivity <avi@...hat.com>, Ingo Molnar <mingo@...e.hu>
Cc: "Eric W. Biederman" <ebiederm@...ssion.com>,
Simon Horman <horms@...ge.net.au>,
Andrew Morton <akpm@...l.org>, Vivek Goyal <vgoyal@...hat.com>,
Haren Myneni <hbabu@...ibm.com>,
Andrey Borzenkov <arvidjaar@...l.ru>, mingo@...hat.com,
"Rafael J. Wysocki" <rjw@...k.pl>, kexec@...ts.infradead.org,
kvm@...r.kernel.org, linux-kernel@...r.kernel.org,
Eduardo Habkost <ehabkost@...hat.com>
Subject: [PATCH 10/15] kdump: Hook emergency_virt_disable() on crash shutdown code
[v2: add comments on source code, explaining why it is needed]
Signed-off-by: Eduardo Habkost <ehabkost@...hat.com>
---
arch/x86/kernel/crash.c | 13 +++++++++++++
1 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/arch/x86/kernel/crash.c b/arch/x86/kernel/crash.c
index d84a852..040f3ca 100644
--- a/arch/x86/kernel/crash.c
+++ b/arch/x86/kernel/crash.c
@@ -26,6 +26,7 @@
#include <linux/kdebug.h>
#include <asm/smp.h>
#include <asm/reboot.h>
+#include <asm/virtext.h>
#include <mach_ipi.h>
@@ -49,6 +50,11 @@ static void kdump_nmi_callback(int cpu, struct die_args *args)
#endif
crash_save_cpu(regs, cpu);
+ /* 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.
+ */
+ emergency_virt_disable();
disable_local_APIC();
}
@@ -80,6 +86,13 @@ 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.
+ */
+ emergency_virt_disable();
+
lapic_shutdown();
#if defined(CONFIG_X86_IO_APIC)
disable_IO_APIC();
--
1.5.5.GIT
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists