diff options
author | Gleb Natapov <gleb@redhat.com> | 2010-03-18 09:20:13 -0400 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2010-05-17 05:16:09 -0400 |
commit | fd5253658b403d51fc19e56ecb44c54a3071fded (patch) | |
tree | 45c887e9827e0cd25a636896886a8b7c00498833 /arch/x86/kvm | |
parent | 2e901c4cf4b550ad37840870246e835889cf7322 (diff) |
KVM: x86 emulator: do not call writeback if msr access fails.
Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Diffstat (limited to 'arch/x86/kvm')
-rw-r--r-- | arch/x86/kvm/emulate.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c index 1393bf034243..b89a8f217332 100644 --- a/arch/x86/kvm/emulate.c +++ b/arch/x86/kvm/emulate.c | |||
@@ -2563,7 +2563,7 @@ twobyte_insn: | |||
2563 | | ((u64)c->regs[VCPU_REGS_RDX] << 32); | 2563 | | ((u64)c->regs[VCPU_REGS_RDX] << 32); |
2564 | if (kvm_set_msr(ctxt->vcpu, c->regs[VCPU_REGS_RCX], msr_data)) { | 2564 | if (kvm_set_msr(ctxt->vcpu, c->regs[VCPU_REGS_RCX], msr_data)) { |
2565 | kvm_inject_gp(ctxt->vcpu, 0); | 2565 | kvm_inject_gp(ctxt->vcpu, 0); |
2566 | c->eip = ctxt->eip; | 2566 | goto done; |
2567 | } | 2567 | } |
2568 | rc = X86EMUL_CONTINUE; | 2568 | rc = X86EMUL_CONTINUE; |
2569 | c->dst.type = OP_NONE; | 2569 | c->dst.type = OP_NONE; |
@@ -2572,7 +2572,7 @@ twobyte_insn: | |||
2572 | /* rdmsr */ | 2572 | /* rdmsr */ |
2573 | if (kvm_get_msr(ctxt->vcpu, c->regs[VCPU_REGS_RCX], &msr_data)) { | 2573 | if (kvm_get_msr(ctxt->vcpu, c->regs[VCPU_REGS_RCX], &msr_data)) { |
2574 | kvm_inject_gp(ctxt->vcpu, 0); | 2574 | kvm_inject_gp(ctxt->vcpu, 0); |
2575 | c->eip = ctxt->eip; | 2575 | goto done; |
2576 | } else { | 2576 | } else { |
2577 | c->regs[VCPU_REGS_RAX] = (u32)msr_data; | 2577 | c->regs[VCPU_REGS_RAX] = (u32)msr_data; |
2578 | c->regs[VCPU_REGS_RDX] = msr_data >> 32; | 2578 | c->regs[VCPU_REGS_RDX] = msr_data >> 32; |