diff options
author | Avi Kivity <avi@qumranet.com> | 2008-04-30 16:13:36 +0300 |
---|---|---|
committer | Avi Kivity <avi@qumranet.com> | 2008-05-04 14:44:45 +0300 |
commit | dc7457ea52f88539dc72925360e6068d5c938a0f (patch) | |
tree | 944de4de942d1e95d449b8a87ff47581f1720342 /arch | |
parent | de368dceb33c3c068dbde1407aff75cd8e126f04 (diff) | |
download | op-kernel-dev-dc7457ea52f88539dc72925360e6068d5c938a0f.zip op-kernel-dev-dc7457ea52f88539dc72925360e6068d5c938a0f.tar.gz |
KVM: x86 emulator: disable writeback on lmsw
The recent changes allowing memory operands with lmsw and smsw left
lmsw with writeback enabled. Since lmsw has no oridinary destination
operand, the dst pointer was not initialized, resulting in an oops.
Close the hole by disabling writeback for lmsw.
Signed-off-by: Avi Kivity <avi@qumranet.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/kvm/x86_emulate.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/x86/kvm/x86_emulate.c b/arch/x86/kvm/x86_emulate.c index 2ca0838..f2a696d 100644 --- a/arch/x86/kvm/x86_emulate.c +++ b/arch/x86/kvm/x86_emulate.c @@ -1761,6 +1761,7 @@ twobyte_insn: case 6: /* lmsw */ realmode_lmsw(ctxt->vcpu, (u16)c->src.val, &ctxt->eflags); + c->dst.type = OP_NONE; break; case 7: /* invlpg*/ emulate_invlpg(ctxt->vcpu, memop); |