Re: [PATCH 02/16] rcu: Check return value for cpumask allocation

Pranith Kumar
2014-07-23T12:49:39Z

On Wed, Jul 23, 2014 at 8:06 AM, Paul E. McKenney
<paulmck@linux.vnet.ibm.com> wrote:
> On Wed, Jul 23, 2014 at 01:09:39AM -0400, Pranith Kumar wrote:
>> This commit add a check for return value of zalloc_cpumask_var() used while
>> allocating cpumask for rcu_nocb_mask.
>>
>> Signed-off-by: Pranith Kumar <bobby.prani@gmail.com>
>> ---
>> kernel/rcu/tree_plugin.h | 5 ++++-
>> 1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h
>> index f07b643..bac9797 100644
>> --- a/kernel/rcu/tree_plugin.h
>> +++ b/kernel/rcu/tree_plugin.h
>> @@ -88,7 +88,10 @@ static void __init rcu_bootup_announce_oddness(void)
>> #ifdef CONFIG_RCU_NOCB_CPU
>> #ifndef CONFIG_RCU_NOCB_CPU_NONE
>> if (!have_rcu_nocb_mask) {
>> - zalloc_cpumask_var(&rcu_nocb_mask, GFP_KERNEL);
>> + if (!zalloc_cpumask_var(&rcu_nocb_mask, GFP_KERNEL)) {
>> + pr_info("rcu_nocb_mask allocation failed\n");
>> + return;
>
> Good catch, but this "return" is an accident waiting to happen. The
> accident will happen as soon as another RCU option appears, and the
> person adding it quite naturally adds it at the end of this function.
> The cleanest approach is to make an rcu_bootup_announce_oddness_nocb()
> as one commit that does -only- code motion, and the make this change
> as another commit.
>

OK, I will resubmit this change as a 2 patch change.

--
Pranith