Message ID | 1246435671-25485-1-git-send-email-sheng@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wednesday 01 July 2009 16:21:13 Avi Kivity wrote: > On 07/01/2009 11:07 AM, Sheng Yang wrote: > > One typo in commit: "KVM: convert custom marker based tracing to > > event traces" caused: > > > > set_cr8: #GP, reserved bits 0x7f > > > > when try to boot up IA32e Windows guest. > > > > One value has been written to R8 instead of specific register, then the > > value of specific register can be invalid as CR8. Guest RMW it, then got > > trouble. > > Applied, thanks. Strange how I didn't see it - I have both Windows XP > x64 and Vista x64 in my test suite. Forgot to mention, it only happened in some of our machines here...
On 07/01/2009 11:07 AM, Sheng Yang wrote: > One typo in commit: "KVM: convert custom marker based tracing to > event traces" caused: > > set_cr8: #GP, reserved bits 0x7f > > when try to boot up IA32e Windows guest. > > One value has been written to R8 instead of specific register, then the > value of specific register can be invalid as CR8. Guest RMW it, then got > trouble. > Applied, thanks. Strange how I didn't see it - I have both Windows XP x64 and Vista x64 in my test suite.
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c index 119fa47..3a75db3 100644 --- a/arch/x86/kvm/vmx.c +++ b/arch/x86/kvm/vmx.c @@ -2903,7 +2903,7 @@ static int handle_cr(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run) return 1; case 8: val = kvm_get_cr8(vcpu); - kvm_register_write(vcpu, cr, val); + kvm_register_write(vcpu, reg, val); trace_kvm_cr_read(cr, val); skip_emulated_instruction(vcpu); return 1;
One typo in commit: "KVM: convert custom marker based tracing to event traces" caused: set_cr8: #GP, reserved bits 0x7f when try to boot up IA32e Windows guest. One value has been written to R8 instead of specific register, then the value of specific register can be invalid as CR8. Guest RMW it, then got trouble. Signed-off-by: Sheng Yang <sheng@linux.intel.com> --- arch/x86/kvm/vmx.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)