Re: [PATCH 2/4] ipmi: Limit the number of message a user may have outstanding

From: chenchacha
Date: Wed Mar 30 2022 - 10:45:09 EST


@@ -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?

--
Chen Guanqiao