KVM: Fix load_guest_segment_descriptor() to inject page fault
authorTakuya Yoshikawa <yoshikawa.takuya@oss.ntt.co.jp>
Thu, 18 Feb 2010 10:15:00 +0000 (12:15 +0200)
committerMarcelo Tosatti <mtosatti@redhat.com>
Mon, 1 Mar 2010 15:36:13 +0000 (12:36 -0300)
commit6f550484a15ea1b468665cdf59f020bf08ccb292
treed4088b1aa157dca4dadc2a99969299dc46098148
parent8b9f44140bc4afd2698413cd9960c3912168ee91
KVM: Fix load_guest_segment_descriptor() to inject page fault

This patch injects page fault when reading descriptor in
load_guest_segment_descriptor() fails with FAULT.

Effects of this injection: This function is used by
kvm_load_segment_descriptor() which is necessary for the
following instructions:

 - mov seg,r/m16
 - jmp far
 - pop ?s

This patch makes it possible to emulate the page faults
generated by these instructions. But be sure that unless
we change the kvm_load_segment_descriptor()'s ret value
propagation this patch has no effect.

Signed-off-by: Takuya Yoshikawa <yoshikawa.takuya@oss.ntt.co.jp>
Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
arch/x86/kvm/x86.c