Message ID | 20201019090657.131-2-zhenzhong.duan@gmail.com |
---|---|
State | New |
Headers | show |
Series | [1/2] KVM: not register a IRQ bypass producer if unsupported or disabled | expand |
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; > }
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 --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; }
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(-)