[GIT PULL] ARM: support THREAD_INFO_IN_TASK

Kees Cook keescook at chromium.org
Mon Oct 11 10:22:09 PDT 2021


On Sun, Oct 10, 2021 at 09:50:52AM +0200, Ard Biesheuvel wrote:
> 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?

As this is a prerequisite for the IRQ stack work and it's been
Reviewed/Tested-by already, I could carry this series for -next. Maybe
that would help?

-Kees

> 
> > 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

-- 
Kees Cook



More information about the linux-arm-kernel mailing list