Commit 2f0a6397 authored by Zhihui Zhang's avatar Zhihui Zhang Committed by Marcelo Tosatti

KVM: VMX: check use I/O bitmap first before unconditional I/O exit

According to Table C-1 of Intel SDM 3C, a VM exit happens on an I/O instruction when
"use I/O bitmaps" VM-execution control was 0 _and_ the "unconditional I/O exiting"
VM-execution control was 1. So we can't just check "unconditional I/O exiting" alone.
This patch was improved by suggestion from Jan Kiszka.
Reviewed-by: default avatarJan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: default avatarZhihui Zhang <zzhsuny@gmail.com>
Signed-off-by: default avatarMarcelo Tosatti <mtosatti@redhat.com>
parent 17180032
...@@ -6521,11 +6521,8 @@ static bool nested_vmx_exit_handled_io(struct kvm_vcpu *vcpu, ...@@ -6521,11 +6521,8 @@ static bool nested_vmx_exit_handled_io(struct kvm_vcpu *vcpu,
int size; int size;
u8 b; u8 b;
if (nested_cpu_has(vmcs12, CPU_BASED_UNCOND_IO_EXITING))
return 1;
if (!nested_cpu_has(vmcs12, CPU_BASED_USE_IO_BITMAPS)) if (!nested_cpu_has(vmcs12, CPU_BASED_USE_IO_BITMAPS))
return 0; return nested_cpu_has(vmcs12, CPU_BASED_UNCOND_IO_EXITING);
exit_qualification = vmcs_readl(EXIT_QUALIFICATION); exit_qualification = vmcs_readl(EXIT_QUALIFICATION);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment