pstore/ram: (really) fix undefined usage of rounddown_pow_of_two
authorMaxime Bizon <mbizon@freebox.fr>
Fri, 30 Aug 2013 16:06:41 +0000 (18:06 +0200)
committerTony Luck <tony.luck@intel.com>
Fri, 30 Aug 2013 22:57:01 +0000 (15:57 -0700)
Previous attempt to fix was b042e47491ba5f487601b5141a3f1d8582304170

Suggested use of is_power_of_2() was bogus because is_power_of_2(0) is
false (documented behaviour).

Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
Acked-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Tony Luck <tony.luck@intel.com>
fs/pstore/ram.c

index 4027c20..fa8cef2 100644 (file)
@@ -421,11 +421,11 @@ static int ramoops_probe(struct platform_device *pdev)
                goto fail_out;
        }
 
-       if (!is_power_of_2(pdata->record_size))
+       if (pdata->record_size && !is_power_of_2(pdata->record_size))
                pdata->record_size = rounddown_pow_of_two(pdata->record_size);
-       if (!is_power_of_2(pdata->console_size))
+       if (pdata->console_size && !is_power_of_2(pdata->console_size))
                pdata->console_size = rounddown_pow_of_two(pdata->console_size);
-       if (!is_power_of_2(pdata->ftrace_size))
+       if (pdata->ftrace_size && !is_power_of_2(pdata->ftrace_size))
                pdata->ftrace_size = rounddown_pow_of_two(pdata->ftrace_size);
 
        cxt->dump_read_cnt = 0;