Hi Avi,

I was playing with KVM while booting SuSE Linux 10.1 on it. And I found
it was bailing out with #SS fault. I root caused it to the address size
override opcode (0x67) from a mov instruction from the boot loader.
  The attached patch handles the #SS(0) fault with emulation, letting
guest can proceed further.

Thanks & Regards,
Nitin 
Open Source Technology Center, Intel Corporation.
-------------------------------------------------------------------------
The mind is like a parachute; it works much better when it's open. 
commit e7ae040a34ae99ac4eb08701b1a54a7e4315238a
Author: Nitin A Kamble <[EMAIL PROTECTED]>
Date:   Wed May 16 21:05:58 2007 -0700

     Instruction with address size override prefix opcode 0x67
     Cause the #SS fault with 0 error code in VM86 mode.
     <Signed-Off-By: Nitin A Kamble <[EMAIL PROTECTED]>

diff --git a/drivers/kvm/vmx.c b/drivers/kvm/vmx.c
index b1430e1..7d7edb7 100644
--- a/drivers/kvm/vmx.c
+++ b/drivers/kvm/vmx.c
@@ -1487,7 +1487,9 @@ static int handle_rmode_exception(struct kvm_vcpu *vcpu,
 	if (!vcpu->rmode.active)
 		return 0;
 
-	if (vec == GP_VECTOR && err_code == 0)
+    /* Instruction with address size override prefix opcode 0x67
+       Cause the #SS fault with 0 error code in VM86 mode.  */
+	if (((vec == GP_VECTOR) || (vec == SS_VECTOR)) && err_code == 0)
 		if (emulate_instruction(vcpu, NULL, 0, 0) == EMULATE_DONE)
 			return 1;
 	return 0;

Attachment: signature.asc
Description: This is a digitally signed message part

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to