On 2024-09-02 07:06, Jinjie Ruan wrote:
sizeof(unsigned long) * 8 is the number of bits in an unsigned long variable, replace it with BITS_PER_LONG macro to make it simpler.
An alternative would be: if (rcu_fanout_leaf < 2 || sizeof_field(struct rcu_node, qsmask) * CHAR_BIT) { which would then tie the check to validated member type. But it's slightly more verbose, so it's up to the maintainer really. Thanks, Mathieu
Signed-off-by: Jinjie Ruan <ruanjinjie@xxxxxxxxxx> --- kernel/rcu/tree.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index a60616e69b66..b48864df415c 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -5579,8 +5579,7 @@ void rcu_init_geometry(void) * Complain and fall back to the compile-time values if this * limit is exceeded. */ - if (rcu_fanout_leaf < 2 || - rcu_fanout_leaf > sizeof(unsigned long) * 8) { + if (rcu_fanout_leaf < 2 || rcu_fanout_leaf > BITS_PER_LONG) { rcu_fanout_leaf = RCU_FANOUT_LEAF; WARN_ON(1); return;
-- Mathieu Desnoyers EfficiOS Inc. https://www.efficios.com