KVM: Fix IA32e Windows can't boot issue
PATCH 1/1 KVM: Fix IA32e Windows can't boot issue
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.
--- arch/x86/kvm/vmx.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
arch/x86/kvm/vmx.c +1 -1
@@ -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 ;
Signature · 1 line
1.5.4.5
Quoted 11 lines · Sheng Yang
One typo in commit: "KVM: convert custom marker based tracing to event traces" caused:
set_cr8: #GP, reserved bits0x7fwhen 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.
Signature · 1 line
error compiling committee.c: too many arguments to function
Quoted 6 lines · On Wednesday 01 July 2009 16:21:13 Avi Kivity wrote:
Quoted 5 lines · Sheng Yang
One typo in commit: "KVM: convert custom marker based tracing to event traces" caused:
set_cr8: #GP, reserved bits0x7f
Quoted 8 lines
Quoted 5 lines
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...
Signature · 2 lines
regards Yang, Sheng