diff options
author | Avi Kivity <avi@qumranet.com> | 2008-05-05 14:58:26 +0300 |
---|---|---|
committer | Avi Kivity <avi@qumranet.com> | 2008-05-18 14:34:14 +0300 |
commit | 107d6d2efa9eb8c48d050936d8019230ac6b24cd (patch) | |
tree | fc1d94a18e3f909e31c900ac698811831ed0abb2 /include/asm-x86/kvm_x86_emulate.h | |
parent | f26a3988917913b3d11b2bd741601a2c64ab9204 (diff) | |
download | lwn-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.h | 1 |
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; }; |