On 25/08/2015 10:50, Feng Wu wrote: > + struct kvm_kernel_irqfd *irqfd = > + container_of(cons, struct kvm_kernel_irqfd, consumer); > + > + irqfd->producer = prod; This assignment should be under "if (kvm_x86_ops->update_pi_irte)". > + return kvm_arch_update_pi_irte(irqfd->kvm, prod->irq, irqfd->gsi, 1); > +} > + > +void kvm_arch_irq_bypass_del_producer(struct irq_bypass_consumer *cons, > + struct irq_bypass_producer *prod) > +{ > + int ret; > + struct kvm_kernel_irqfd *irqfd = > + container_of(cons, struct kvm_kernel_irqfd, consumer); > + > + irqfd->producer = NULL; And here it should be like: if (!kvm_x86_ops->update_pi_irte) { WARN_ON(irqfd->producer != NULL); return; } WARN_ON(irqfd->producer != prod); irqfd->producer = NULL; Paolo > + -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html