[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