[PATCH 2/2] KVM: not link irqfd with a fake IRQ bypass producer

From: Zhenzhong Duan
Date: Mon Oct 19 2020 - 05:07:29 EST


In case failure to setup Post interrupt for an IRQ, it make no sense
to assign irqfd->producer to the producer.

This change makes code more robust.

Signed-off-by: Zhenzhong Duan <zhenzhong.duan@xxxxxxxxx>
---
arch/x86/kvm/x86.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index ce856e0..277e961 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -10683,13 +10683,14 @@ int kvm_arch_irq_bypass_add_producer(struct irq_bypass_consumer *cons,
container_of(cons, struct kvm_kernel_irqfd, consumer);
int ret;

- irqfd->producer = prod;
kvm_arch_start_assignment(irqfd->kvm);
ret = kvm_x86_ops.update_pi_irte(irqfd->kvm,
prod->irq, irqfd->gsi, 1);

if (ret)
kvm_arch_end_assignment(irqfd->kvm);
+ else
+ irqfd->producer = prod;

return ret;
}
--
1.8.3.1