On Wed, Mar 30, 2022 at 10:44:50PM +0800, chenchacha wrote:
> > @@ -2298,6 +2309,14 @@ static int i_ipmi_request(struct ipmi_user     *user,
> >     struct ipmi_recv_msg *recv_msg;
> >     int rv = 0;
> > +   if (user) {
> > +           if (atomic_add_return(1, &user->nr_msgs) > max_msgs_per_user) {
> > +                   atomic_dec(&user->nr_msgs);
> > +                   rv = -EBUSY;
> > +                   goto out;
> > +           }
> > +   }
> > +
> > @@ -2369,6 +2388,8 @@ static int i_ipmi_request(struct ipmi_user     *user,
> >     rcu_read_unlock();
> >   out:
> > +   if (rv && user)
> > +           atomic_dec(&user->nr_msgs);
> >     return rv;
> >   }
> 
> If the number of msg is greater than the limit, the nr_msgs will be decrease
> twice.
> 
> Should it be returned directory?

Oh wait, yeah, I screwed that up.  I added the first decrement later,
after I "noticed" it was missing.  I should add a comment there.
Thanks.

-corey

> 
> --
> Chen Guanqiao


_______________________________________________
Openipmi-developer mailing list
Openipmi-developer@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openipmi-developer

Reply via email to