diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2017-07-14 13:36:11 +0200 |
---|---|---|
committer | Radim Krčmář <rkrcmar@redhat.com> | 2017-07-19 16:05:41 +0200 |
commit | 4c4a6f790ee862ee9f0dc8b35c71f55bcf792b71 (patch) | |
tree | 827f8e6a071255cb2a82645d4adf84691631d64c /arch/m32r/lib/delay.c | |
parent | f85c758dbee54cc3612a6e873ef7cecdb66ebee5 (diff) |
KVM: nVMX: track NMI blocking state separately for each VMCS
vmx_recover_nmi_blocking is using a cached value of the guest
interruptibility info, which is stored in vmx->nmi_known_unmasked.
vmx_recover_nmi_blocking is run for both normal and nested guests,
so the cached value must be per-VMCS.
This fixes eventinj.flat in a nested non-EPT environment. With EPT it
works, because the EPT violation handler doesn't have the
vmx->nmi_known_unmasked optimization (it is unnecessary because, unlike
vmx_recover_nmi_blocking, it can just look at the exit qualification).
Thanks to Wanpeng Li for debugging the testcase and providing an initial
patch.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
Diffstat (limited to 'arch/m32r/lib/delay.c')
0 files changed, 0 insertions, 0 deletions