summaryrefslogtreecommitdiff
path: root/include/asm-x86/kvm_x86_emulate.h
diff options
context:
space:
mode:
authorAvi Kivity <avi@qumranet.com>2008-05-05 14:58:26 +0300
committerAvi Kivity <avi@qumranet.com>2008-05-18 14:34:14 +0300
commit107d6d2efa9eb8c48d050936d8019230ac6b24cd (patch)
treefc1d94a18e3f909e31c900ac698811831ed0abb2 /include/asm-x86/kvm_x86_emulate.h
parentf26a3988917913b3d11b2bd741601a2c64ab9204 (diff)
downloadlwn-107d6d2efa9eb8c48d050936d8019230ac6b24cd.tar.gz
lwn-107d6d2efa9eb8c48d050936d8019230ac6b24cd.zip
KVM: x86 emulator: fix writes to registers with modrm encodings
A register destination encoded with a mod=3 encoding left dst.ptr NULL. Normally we don't trap writes to registers, but in the case of smsw, we do. Fix by pointing dst.ptr at the destination register. Signed-off-by: Avi Kivity <avi@qumranet.com>
Diffstat (limited to 'include/asm-x86/kvm_x86_emulate.h')
-rw-r--r--include/asm-x86/kvm_x86_emulate.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/asm-x86/kvm_x86_emulate.h b/include/asm-x86/kvm_x86_emulate.h
index d6337f941c98..b877bbd2d3a7 100644
--- a/include/asm-x86/kvm_x86_emulate.h
+++ b/include/asm-x86/kvm_x86_emulate.h
@@ -135,6 +135,7 @@ struct decode_cache {
u8 modrm_rm;
u8 use_modrm_ea;
unsigned long modrm_ea;
+ void *modrm_ptr;
unsigned long modrm_val;
struct fetch_cache fetch;
};