@@ -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 _______________________________________________ Openipmi-developer mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/openipmi-developer
