diff options
author | Paolo Bonzini <[email protected]> | 2021-11-30 07:37:45 -0500 |
---|---|---|
committer | Paolo Bonzini <[email protected]> | 2021-12-02 04:12:11 -0500 |
commit | ef8b4b7203682cc9adb37c8336d3f0f3b80bc382 (patch) | |
tree | c669580c30f5a082940b346cb4ed1260c640fc86 /scripts/gcc-plugins/gcc-generate-simple_ipa-pass.h | |
parent | cb1d220da0faa5ca0deb93449aff953f0c2cce6d (diff) |
KVM: ensure APICv is considered inactive if there is no APIC
kvm_vcpu_apicv_active() returns false if a virtual machine has no in-kernel
local APIC, however kvm_apicv_activated might still be true if there are
no reasons to disable APICv; in fact it is quite likely that there is none
because APICv is inhibited by specific configurations of the local APIC
and those configurations cannot be programmed. This triggers a WARN:
WARN_ON_ONCE(kvm_apicv_activated(vcpu->kvm) != kvm_vcpu_apicv_active(vcpu));
To avoid this, introduce another cause for APICv inhibition, namely the
absence of an in-kernel local APIC. This cause is enabled by default,
and is dropped by either KVM_CREATE_IRQCHIP or the enabling of
KVM_CAP_IRQCHIP_SPLIT.
Reported-by: Ignat Korchagin <[email protected]>
Fixes: ee49a8932971 ("KVM: x86: Move SVM's APICv sanity check to common x86", 2021-10-22)
Reviewed-by: Maxim Levitsky <[email protected]>
Reviewed-by: Sean Christopherson <[email protected]>
Tested-by: Ignat Korchagin <[email protected]>
Message-Id: <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>
Diffstat (limited to 'scripts/gcc-plugins/gcc-generate-simple_ipa-pass.h')
0 files changed, 0 insertions, 0 deletions