From: Jan Kiszka <[EMAIL PROTECTED]>
This fixes the issue booting FreeDOS under userspace kvm-70rc1 and
above.
Signed-off-by: Mohammed Gamal <[EMAIL PROTECTED]>
---
arch/x86/kvm/vmx.c | 12 ++++++++++++
include/asm-x86/kvm_host.h | 1 +
2 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index f998943..6145dbd 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -2235,6 +2235,18 @@ static int handle_rmode_exception(struct kvm_vcpu *vcpu,
if (((vec == GP_VECTOR) || (vec == SS_VECTOR)) && err_code == 0)
if (emulate_instruction(vcpu, NULL, 0, 0, 0) == EMULATE_DONE)
return 1;
+
+ /*
+ * Forward #DB to host, this is required to boot FreeDOS
+ *
+ * FIXME: Quick-hack, breaks guest debugging in real mode, will be
+ * fixed with the required debugging infrastructure rework.
+ */
+ if (vec == DB_VECTOR) {
+ vmx_inject_irq(vcpu, vec);
+ return 1;
+ }
+
return 0;
}
diff --git a/include/asm-x86/kvm_host.h b/include/asm-x86/kvm_host.h
index 82237b2..aad6244 100644
--- a/include/asm-x86/kvm_host.h
+++ b/include/asm-x86/kvm_host.h
@@ -56,6 +56,7 @@
#define KVM_PAGES_PER_HPAGE (KVM_HPAGE_SIZE / PAGE_SIZE)
#define DE_VECTOR 0
+#define DB_VECTOR 1
#define UD_VECTOR 6
#define NM_VECTOR 7
#define DF_VECTOR 8
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html