Re: [PATCH 4.19 08/57] KVM: x86: Fix split-irqchip vs interrupt injection window request

From: Paolo Bonzini
Date: Tue Dec 01 2020 - 10:49:05 EST


On 01/12/20 16:33, Pavel Machek wrote:
Hi!

- in order to tell userspace we will inject its interrupt ("IRQ
window open" i.e. kvm_vcpu_ready_for_interrupt_injection), both
KVM and the vCPU need to be ready to accept the interrupt.

... and this is what the patch implements.

Reported-by: David Woodhouse <dwmw@xxxxxxxxxxxx>
Analyzed-by: David Woodhouse <dwmw@xxxxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx

This makes no difference for -stable, but the patch is confused about
types:

+++ b/arch/x86/kvm/x86.c
@@ -3351,21 +3351,23 @@ static int kvm_vcpu_ioctl_set_lapic(stru
static int kvm_cpu_accept_dm_intr(struct kvm_vcpu *vcpu)
{
+ /*
+ * We can accept userspace's request for interrupt injection
+ * as long as we have a place to store the interrupt number.
+ * The actual injection will happen when the CPU is able to
+ * deliver the interrupt.
+ */
+ if (kvm_cpu_has_extint(vcpu))
+ return false;

Since function is "static int" it should probably return 0.

Other way round, it should return static bool. :) At least it's consistently returning a boolean expression, never e.g. negative errno.

Paolo