kvm_restore_host_pmu(vcpu);
}
-static void kvm_check_pmu(struct kvm_vcpu *vcpu)
-{
- if (kvm_check_request(KVM_REQ_PMU, vcpu)) {
- kvm_own_pmu(vcpu);
- vcpu->arch.aux_inuse |= KVM_LARCH_PMU;
- }
-}
-
static void kvm_update_stolen_time(struct kvm_vcpu *vcpu)
{
u32 version;
static void kvm_late_check_requests(struct kvm_vcpu *vcpu)
{
lockdep_assert_irqs_disabled();
+
+ if (!kvm_request_pending(vcpu))
+ return;
+
+ if (kvm_check_request(KVM_REQ_PMU, vcpu)) {
+ kvm_own_pmu(vcpu);
+ vcpu->arch.aux_inuse |= KVM_LARCH_PMU;
+ }
+
if (kvm_check_request(KVM_REQ_TLB_FLUSH_GPA, vcpu))
if (vcpu->arch.flush_gpa != INVALID_GPA) {
kvm_flush_tlb_gpa(vcpu, vcpu->arch.flush_gpa);
/* Make sure the vcpu mode has been written */
smp_store_mb(vcpu->mode, IN_GUEST_MODE);
kvm_check_vpid(vcpu);
- kvm_check_pmu(vcpu);
/*
* Called after function kvm_check_vpid()