Re: [kernel-hardening] [PATCH v4 3/8] param: convert some "on"/"off" users to strtobool

From: Kees Cook
Date: Wed Jan 27 2016 - 16:19:35 EST


On Wed, Jan 27, 2016 at 1:11 PM, David Brown <david.brown@xxxxxxxxxx> wrote:
> On Tue, Jan 19, 2016 at 10:08:37AM -0800, Kees Cook wrote:
>
>> diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
>> index 9cc20af58c76..f5ea98490ffa 100644
>> --- a/kernel/time/tick-sched.c
>> +++ b/kernel/time/tick-sched.c
>> @@ -387,20 +388,14 @@ void __init tick_nohz_init(void)
>> /*
>> * NO HZ enabled ?
>> */
>> -static int tick_nohz_enabled __read_mostly = 1;
>> +static bool tick_nohz_enabled __read_mostly = true;
>> unsigned long tick_nohz_active __read_mostly;
>> /*
>> * Enable / Disable tickless mode
>> */
>
>
> Just discovered this conflicts with a recent patch with
> CONFIG_NO_HZ_COMMON:
>
> commit 46373a15f65fe862f31c19a484acdf551f2b442f
> Author: Jean Delvare <jdelvare@xxxxxxx>
> Date: Mon Jan 11 17:40:31 2016 +0100
>
> time: nohz: Expose tick_nohz_enabled
>
> kernel/time/tick-sched.c:390:6: error: conflicting types for
> âtick_nohz_enabledâ
> bool tick_nohz_enabled __read_mostly = true;
> ^
> In file included from kernel/time/tick-internal.h:5:0,
> from kernel/time/tick-sched.c:30:
> include/linux/tick.h:101:12: note: previous declaration of
> âtick_nohz_enabledâ was here
> extern int tick_nohz_enabled;
> ^

Thanks! Yeah, I noticed this too when rebasing recently.

> Fixing the compilation error, it compiles and boots on arm64, however
> it isn't detecting the write (with the lkdtm test). I'll continue
> looking into what's preventing this.

I'm going to hope it's something easy like CONFIG_DEBUG_RODATA not being set. :)

-Kees

--
Kees Cook
Chrome OS & Brillo Security