summaryrefslogtreecommitdiff
path: root/arch/s390/kvm/intercept.c
diff options
context:
space:
mode:
authorGleb Natapov <gleb@redhat.com>2012-12-20 18:57:47 +0400
committerMarcelo Tosatti <mtosatti@redhat.com>2013-01-03 01:36:31 +0400
commit0ca1b4f4ba3a9f75bb099ccaf6c4bd8bb6db7a74 (patch)
treeedd7943dc03ffec9ed3055a499b9b98a1e4996bd /arch/s390/kvm/intercept.c
parentd54d07b2ca19a2908aa89e0c67715ca2e8e62a4c (diff)
downloadlinux-0ca1b4f4ba3a9f75bb099ccaf6c4bd8bb6db7a74.tar.xz
KVM: VMX: handle IO when emulation is due to #GP in real mode.
With emulate_invalid_guest_state=0 if a vcpu is in real mode VMX can enter the vcpu with smaller segment limit than guest configured. If the guest tries to access pass this limit it will get #GP at which point instruction will be emulated with correct segment limit applied. If during the emulation IO is detected it is not handled correctly. Vcpu thread should exit to userspace to serve the IO, but it returns to the guest instead. Since emulation is not completed till userspace completes the IO the faulty instruction is re-executed ad infinitum. The patch fixes that by exiting to userspace if IO happens during instruction emulation. Reported-by: Alex Williamson <alex.williamson@redhat.com> Signed-off-by: Gleb Natapov <gleb@redhat.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Diffstat (limited to 'arch/s390/kvm/intercept.c')
0 files changed, 0 insertions, 0 deletions