[GIT PULL] ARM: support THREAD_INFO_IN_TASK

Ard Biesheuvel ardb at kernel.org
Sun Oct 10 00:50:52 PDT 2021


On Mon, 27 Sept 2021 at 17:06, Ard Biesheuvel <ardb at kernel.org> wrote:
>
> The following changes since commit 6880fa6c56601bb8ed59df6c30fd390cc5f6dd8f:
>
>   Linux 5.15-rc1 (2021-09-12 16:28:37 -0700)
>
> are available in the Git repository at:
>
>   git://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git tags/pr-arm32-ti-in-task
>
> for you to fetch changes up to 18ed1c01a7dd3d7c780b06a49124da237a4c1790:
>
>   ARM: smp: Enable THREAD_INFO_IN_TASK (2021-09-27 16:54:02 +0200)
>
> ----------------------------------------------------------------
> ARM: support THREAD_INFO_IN_TASK
>
> Move thread_info off the stack and into the task struct, as is done by
> many other architectures. This requires a method to find the task struct
> of the task currently running on the CPU, which is provided in this case
> by the user space TLS (Thread Local Storage) register. This implies that
> the feature is only supported on CPUs that implement this register,
> i.e., ARM v6k or later.
>
> Kindly tested by Amit and reviewed by Linus. The first patch is against
> the GCC plugins subsystem, but was reviewed by the maintainer and can be
> taken through the ARM tree.
>
> ----------------------------------------------------------------
>

Ping?

> Cc: Keith Packard <keithpac at amazon.com>
> Cc: Kees Cook <keescook at chromium.org>
> Cc: Arnd Bergmann <arnd at arndb.de>
> Cc: Amit Daniel Kachhap <amit.kachhap at arm.com>
> Cc: Linus Walleij <linus.walleij at linaro.org>
>
> Ard Biesheuvel (4):
>       gcc-plugins: arm-ssp: Prepare for THREAD_INFO_IN_TASK support
>       ARM: smp: Free up the TLS register while running in the kernel
>       ARM: smp: Store current pointer in TPIDRURO register if available
>       ARM: smp: Enable THREAD_INFO_IN_TASK
>
> Keith Packard (1):
>       ARM: smp: Pass task to secondary_start_kernel
>
>  arch/arm/Kconfig                              |  8 ++++-
>  arch/arm/Makefile                             |  9 ++---
>  arch/arm/include/asm/assembler.h              | 29 ++++++++++++++++
>  arch/arm/include/asm/current.h                | 50 +++++++++++++++++++++++++++
>  arch/arm/include/asm/smp.h                    |  3 +-
>  arch/arm/include/asm/stackprotector.h         |  2 --
>  arch/arm/include/asm/switch_to.h              | 16 +++++++++
>  arch/arm/include/asm/thread_info.h            | 15 +++++---
>  arch/arm/include/asm/tls.h                    | 10 ++++--
>  arch/arm/kernel/asm-offsets.c                 |  6 ++--
>  arch/arm/kernel/entry-armv.S                  |  5 +++
>  arch/arm/kernel/entry-common.S                |  1 +
>  arch/arm/kernel/entry-header.S                |  8 +++++
>  arch/arm/kernel/head-common.S                 |  5 +++
>  arch/arm/kernel/head-nommu.S                  |  1 +
>  arch/arm/kernel/head.S                        |  5 +--
>  arch/arm/kernel/process.c                     |  8 ++---
>  arch/arm/kernel/smp.c                         | 13 +++++--
>  arch/arm/mm/proc-macros.S                     |  3 +-
>  scripts/gcc-plugins/arm_ssp_per_task_plugin.c | 27 ++++-----------
>  20 files changed, 174 insertions(+), 50 deletions(-)
>  create mode 100644 arch/arm/include/asm/current.h
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel



More information about the linux-arm-kernel mailing list