Re: [PATCH 2/2] arm: apply more __ro_after_init

From: Kees Cook
Date: Wed Aug 10 2016 - 16:03:17 EST


On Wed, Aug 10, 2016 at 2:43 AM, Russell King - ARM Linux
<linux@xxxxxxxxxxxxxxx> wrote:
> On Fri, Jun 03, 2016 at 11:40:24AM -0700, Kees Cook wrote:
>> @@ -1309,16 +1309,11 @@ void __init arm_mm_memblock_reserve(void)
>> * Any other function or debugging method which may touch any device _will_
>> * crash the kernel.
>> */
>> +static char vectors[PAGE_SIZE * 2] __ro_after_init __aligned(PAGE_SIZE);
>> static void __init devicemaps_init(const struct machine_desc *mdesc)
>> {
>> struct map_desc map;
>> unsigned long addr;
>> - void *vectors;
>> -
>> - /*
>> - * Allocate the vector page early.
>> - */
>> - vectors = early_alloc(PAGE_SIZE * 2);
>
> This one is not appropriate. We _do_ write to these pages after init
> for FIQ handler updates. See set_fiq_handler().

Ah, interesting. I guess none of that hardware is being tested on
linux-next. I'll drop that chunk and resubmit.

Thanks!

-Kees

--
Kees Cook
Nexus Security