2020-10-19 10:45:48

by Zhenzhong Duan

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

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 <[email protected]>
---
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


2020-10-20 09:44:22

by Jason Wang

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


On 2020/10/19 下午5:06, Zhenzhong Duan wrote:
> 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.


It's better to describe what issue we will get without this patch.

Thanks


>
> Signed-off-by: Zhenzhong Duan <[email protected]>
> ---
> 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;
> }

2020-10-20 11:27:51

by Zhenzhong Duan

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

On Tue, Oct 20, 2020 at 2:32 PM Jason Wang <[email protected]> wrote:
>
>
> On 2020/10/19 下午5:06, Zhenzhong Duan wrote:
> > 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.
>
>
> It's better to describe what issue we will get without this patch.

I didn't see an issue without this patch.

Regards
Zhenzhong