diff mbox series

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

Message ID 20201019090657.131-2-zhenzhong.duan@gmail.com
State Not Applicable
Delegated to: David Miller
Headers show
Series [1/2] KVM: not register a IRQ bypass producer if unsupported or disabled | expand

Commit Message

Zhenzhong Duan Oct. 19, 2020, 9:06 a.m. UTC
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@gmail.com>
---
 arch/x86/kvm/x86.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Jason Wang Oct. 20, 2020, 6:32 a.m. UTC | #1
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 <zhenzhong.duan@gmail.com>
> ---
>   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;
>   }
Zhenzhong Duan Oct. 20, 2020, 10:12 a.m. UTC | #2
On Tue, Oct 20, 2020 at 2:32 PM Jason Wang <jasowang@redhat.com> 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
diff mbox series

Patch

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;
 }