}
 }
 
-static void vmx_complete_nested_posted_interrupt(struct kvm_vcpu *vcpu)
+static int vmx_complete_nested_posted_interrupt(struct kvm_vcpu *vcpu)
 {
        struct vcpu_vmx *vmx = to_vmx(vcpu);
        int max_irr;
        u16 status;
 
        if (!vmx->nested.pi_desc || !vmx->nested.pi_pending)
-               return;
+               return 0;
 
        vmx->nested.pi_pending = false;
        if (!pi_test_and_clear_on(vmx->nested.pi_desc))
-               return;
+               return 0;
 
        max_irr = find_last_bit((unsigned long *)vmx->nested.pi_desc->pir, 256);
        if (max_irr != 256) {
                vapic_page = vmx->nested.virtual_apic_map.hva;
                if (!vapic_page)
-                       return;
+                       return 0;
 
                __kvm_apic_update_irr(vmx->nested.pi_desc->pir,
                        vapic_page, &max_irr);
        }
 
        nested_mark_vmcs12_pages_dirty(vcpu);
+       return 0;
 }
 
 static void nested_vmx_inject_exception_vmexit(struct kvm_vcpu *vcpu,
        }
 
 no_vmexit:
-       vmx_complete_nested_posted_interrupt(vcpu);
-       return 0;
+       return vmx_complete_nested_posted_interrupt(vcpu);
 }
 
 static u32 vmx_get_preemption_timer_value(struct kvm_vcpu *vcpu)