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.

Reply via email to