[PATCH 8/8] ARM: mm: allow text and rodata sections to be read-only

Kees Cook keescook at chromium.org
Mon Aug 11 08:41:55 PDT 2014


On Mon, Aug 11, 2014 at 6:30 AM, Will Deacon <will.deacon at arm.com> wrote:
> On Thu, Aug 07, 2014 at 04:01:53PM +0100, Kees Cook wrote:
>> This introduces CONFIG_DEBUG_RODATA, making kernel text and rodata
>> read-only. Additionally, this splits rodata from text so that rodata can
>> also be NX, which may lead to wasted memory when aligning to SECTION_SIZE.
>> The read-only areas are made writable during ftrace updates and kexec.
>
> [...]
>
>> diff --git a/arch/arm/kernel/machine_kexec.c b/arch/arm/kernel/machine_kexec.c
>> index 1ac184f2bdd8..4423a565ef6f 100644
>> --- a/arch/arm/kernel/machine_kexec.c
>> +++ b/arch/arm/kernel/machine_kexec.c
>> @@ -164,11 +164,11 @@ void machine_kexec(struct kimage *image)
>>       reboot_code_buffer = page_address(image->control_code_page);
>>
>>       /* Prepare parameters for reboot_code_buffer*/
>> +     set_kernel_text_rw();
>>       kexec_start_address = image->start;
>>       kexec_indirection_page = page_list;
>>       kexec_mach_type = machine_arch_type;
>> -     kexec_boot_atags = dt_mem ?: image->start
>> -                                  - KEXEC_ARM_ZIMAGE_OFFSET
>> +     kexec_boot_atags = dt_mem ?: image->start - KEXEC_ARM_ZIMAGE_OFFSET
>>                                    + KEXEC_ARM_ATAGS_OFFSET;
>
> Minor nit: but this patch and the kexec patch earlier in the series seem to
> move this line around in different ways without actually changing the code.
> I guess you just got a screwy rebase?

An earlier version of the patch had a typo in this line and when
cleaning it up I made this formatting change.

-Kees

-- 
Kees Cook
Chrome OS Security



More information about the linux-arm-kernel mailing list