Messages in this thread | | | Date | Tue, 20 Sep 2022 00:42:27 +0000 | From | Sean Christopherson <> | Subject | Re: [PATCH v2 2/9] KVM: x86: remove return value of kvm_vcpu_block |
| |
On Wed, Aug 17, 2022, Sean Christopherson wrote: > Side topic, usage of kvm_apic_accept_events() appears to be broken (though nothing > can trigger the bug). If kvm_apic_accept_events() were to return an -errno, then > kvm_arch_vcpu_ioctl_run() would return '0' to userspace without updating > vcpu->run->exit_reason. I think an easy fix is to drop the return value entirely > and then WARN if kvm_check_nested_events() returns something other than -EBUSY. > > if (is_guest_mode(vcpu)) { > r = kvm_check_nested_events(vcpu); > if (r < 0) { > WARN_ON_ONCE(r != -EBUSY); > return; > }
For posterity, I was wrong. Way down the stack, vmx_complete_nested_posted_interrupt() can return -ENXIO after filling vcpu->run->exit_reason via kvm_handle_memory_failure(). That's the entire reason why negative values from kvm_check_nested_events() and kvm_apic_accept_events() are morphed to '0', i.e. to "exit to userspace".
| |