rcu: Avoid signed integer overflow in rcu_preempt_deferred_qs()
authorPaul E. McKenney <paulmck@linux.ibm.com>
Mon, 29 Oct 2018 14:36:50 +0000 (07:36 -0700)
committerPaul E. McKenney <paulmck@linux.ibm.com>
Mon, 12 Nov 2018 17:03:59 +0000 (09:03 -0800)
commit5f1a6ef3746f536157922197d98676fa21154549
tree488521b00f0550b91713ab653248aa3ca242e4c7
parent117f683c6e0104e1d6dfe8f143ea9c24ab069044
rcu: Avoid signed integer overflow in rcu_preempt_deferred_qs()

Subtracting INT_MIN can be interpreted as unconditional signed integer
overflow, which according to the C standard is undefined behavior.
Therefore, kernel build arguments notwithstanding, it would be good to
future-proof the code.  This commit therefore substitutes INT_MAX for
INT_MIN in order to avoid undefined behavior.

While in the neighborhood, this commit also creates some meaningful names
for INT_MAX and friends in order to improve readability, as suggested
by Joel Fernandes.

Reported-by: Ran Rozenstein <ranro@mellanox.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com>
kernel/rcu/tree_plugin.h