[PATCH v16 16/21] powerpc: Activate CONFIG_THREAD_INFO_IN_TASK

Nicholas Piggin npiggin at gmail.com
Thu Feb 7 15:44:44 AEDT 2019


Michael Ellerman's on February 5, 2019 9:32 pm:
> From: Christophe Leroy <christophe.leroy at c-s.fr>
> 
> This patch activates CONFIG_THREAD_INFO_IN_TASK which
> moves the thread_info into task_struct.
> 
> Moving thread_info into task_struct has the following advantages:
>   - It protects thread_info from corruption in the case of stack
>     overflows.
>   - Its address is harder to determine if stack addresses are leaked,
>     making a number of attacks more difficult.
> 
> This has the following consequences:
>   - thread_info is now located at the beginning of task_struct.
>   - The 'cpu' field is now in task_struct, and only exists when
>     CONFIG_SMP is active.
>   - thread_info doesn't have anymore the 'task' field.
> 
> This patch:
>   - Removes all recopy of thread_info struct when the stack changes.
>   - Changes the CURRENT_THREAD_INFO() macro to point to current.
>   - Selects CONFIG_THREAD_INFO_IN_TASK.
>   - Modifies raw_smp_processor_id() to get ->cpu from current without
>     including linux/sched.h to avoid circular inclusion and without
>     including asm/asm-offsets.h to avoid symbol names duplication
>     between ASM constants and C constants.
>   - Modifies klp_init_thread_info() to take a task_struct pointer
>     argument.
> 
> Signed-off-by: Christophe Leroy <christophe.leroy at c-s.fr>
> Reviewed-by: Nicholas Piggin <npiggin at gmail.com>
> [mpe: Add task_stack.h to livepatch.h to fix build fails]
> Signed-off-by: Michael Ellerman <mpe at ellerman.id.au>
> ---

Nothing stands out here since my last review that I can see. 
raw_smp_processor_id change is for 32-bit only, of course.

Thanks,
Nick



More information about the Linuxppc-dev mailing list