On Thu, Apr 10, 2025, Kevin Tian wrote: > > From: Sean Christopherson <sea...@google.com> > > +int irq_bypass_register_consumer(struct irq_bypass_consumer *consumer, > > + struct eventfd_ctx *eventfd) > > { > > struct irq_bypass_consumer *tmp; > > struct irq_bypass_producer *producer; > > int ret; > > > > - if (!consumer->token || > > - !consumer->add_producer || !consumer->del_producer) > > + if (WARN_ON_ONCE(consumer->token)) > > + return -EINVAL; > > + > > + if (!consumer->add_producer || !consumer->del_producer) > > return -EINVAL; > > > > mutex_lock(&lock); > > > > list_for_each_entry(tmp, &consumers, node) { > > - if (tmp->token == consumer->token || tmp == consumer) { > > + if (tmp->token == eventfd || tmp == consumer) { > > ret = -EBUSY; > > goto out_err; > > } > > } > > the 2nd check 'tmp == consumer' is redundant. If they are equal > consumer->token is not NULL then the earlier WARN_ON will be > triggered already.
Oh, nice. Good catch! That check subtly gets dropped on the conversion to xarray, so it definitely makes sense to remove it in this patch.