All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ard Biesheuvel <ardb@kernel.org>
To: linux-arm-kernel@lists.infradead.org, linux+pull@armlinux.org.uk
Cc: Ard Biesheuvel <ardb@kernel.org>,
	Russell King <linux@armlinux.org.uk>,
	Nicolas Pitre <nico@fluxnic.net>, Arnd Bergmann <arnd@arndb.de>,
	Kees Cook <keescook@chromium.org>,
	Keith Packard <keithpac@amazon.com>,
	Linus Walleij <linus.walleij@linaro.org>,
	Nick Desaulniers <ndesaulniers@google.com>,
	Tony Lindgren <tony@atomide.com>, Marc Zyngier <maz@kernel.org>,
	Vladimir Murzin <vladimir.murzin@arm.com>,
	Jesse Taube <mr.bossman075@gmail.com>
Subject: [GIT PULL] IRQ stacks and vmap'ed stack for ARM
Date: Wed,  8 Dec 2021 10:26:11 +0100	[thread overview]
Message-ID: <20211208092611.1012773-1-ardb@kernel.org> (raw)

The following changes since commit fa55b7dcdc43c1aa1ba12bca9d2dd4318c2a0dbf:

  Linux 5.16-rc1 (2021-11-14 13:56:52 -0800)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git tags/arm-irq-and-vmap-stacks-for-rmk

for you to fetch changes up to cafc0eab168917ec9c0cd47d530a40cd40eb2928:

  ARM: v7m: enable support for IRQ stacks (2021-12-06 12:49:17 +0100)

Cc: Russell King <linux@armlinux.org.uk>
Cc: Nicolas Pitre <nico@fluxnic.net>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Kees Cook <keescook@chromium.org>
Cc: Keith Packard <keithpac@amazon.com>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Nick Desaulniers <ndesaulniers@google.com>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Vladimir Murzin <vladimir.murzin@arm.com>
Cc: Jesse Taube <mr.bossman075@gmail.com>

----------------------------------------------------------------
ARM: support for IRQ and vmap'ed stacks

This PR covers all the work related to implementing IRQ stacks and
vmap'ed stacks for all 32-bit ARM systems that are currently supported
by the Linux kernel, including RiscPC and Footbridge. It has been
submitted for review in three different waves:
- IRQ stacks support for v7 SMP systems [0],
- vmap'ed stacks support for v7 SMP systems[1],
- extending support for both IRQ stacks and vmap'ed stacks for all
  remaining configurations, including v6/v7 SMP multiplatform kernels
  and uniprocessor configurations including v7-M [2]

[0] https://lore.kernel.org/linux-arm-kernel/20211115084732.3704393-1-ardb@kernel.org/
[1] https://lore.kernel.org/linux-arm-kernel/20211122092816.2865873-1-ardb@kernel.org/
[2] https://lore.kernel.org/linux-arm-kernel/20211206164659.1495084-1-ardb@kernel.org/

----------------------------------------------------------------
Ard Biesheuvel (27):
      ARM: decompressor: disable stack protector
      ARM: stackprotector: prefer compiler for TLS based per-task protector
      ARM: remove some dead code
      ARM: assembler: introduce bl_r macro
      ARM: unwind: support unwinding across multiple stacks
      ARM: export dump_mem() to other objects
      ARM: unwind: dump exception stack from calling frame
      ARM: backtrace-clang: avoid crash on bogus frame pointer
      ARM: implement IRQ stacks
      ARM: call_with_stack: add unwind support
      ARM: run softirqs on the per-CPU IRQ stack
      ARM: memcpy: use frame pointer as unwind anchor
      ARM: memmove: use frame pointer as unwind anchor
      ARM: memset: clean up unwind annotations
      ARM: unwind: disregard unwind info before stack frame is set up
      ARM: switch_to: clean up Thumb2 code path
      ARM: entry: rework stack realignment code in svc_entry
      ARM: implement support for vmap'ed stacks
      ARM: riscpc: drop support for IOMD_IRQREQC/IOMD_IRQREQD IRQ groups
      ARM: entry: preserve thread_info pointer in switch_to
      ARM: module: implement support for PC-relative group relocations
      ARM: assembler: add optimized ldr/str macros to load variables from memory
      ARM: percpu: add SMP_ON_UP support
      ARM: use TLS register for 'current' on !SMP as well
      ARM: smp: defer TPIDRURO update for SMP v6 configurations too
      ARM: implement THREAD_INFO_IN_TASK for uniprocessor systems
      ARM: v7m: enable support for IRQ stacks

Arnd Bergmann (5):
      ARM: riscpc: use GENERIC_IRQ_MULTI_HANDLER
      ARM: footbridge: use GENERIC_IRQ_MULTI_HANDLER
      ARM: iop32x: offset IRQ numbers by 1
      ARM: iop32x: use GENERIC_IRQ_MULTI_HANDLER
      ARM: remove old-style irq entry

Vladimir Murzin (1):
      irqchip: nvic: Use GENERIC_IRQ_MULTI_HANDLER

 arch/arm/Kconfig                                   |  31 ++-
 arch/arm/Makefile                                  |   9 +
 arch/arm/boot/compressed/Makefile                  |   6 +-
 arch/arm/boot/compressed/misc.c                    |   7 -
 arch/arm/include/asm/assembler.h                   | 204 ++++++++++++++++----
 arch/arm/include/asm/current.h                     |  37 ++--
 arch/arm/include/asm/elf.h                         |   3 +
 arch/arm/include/asm/entry-macro-multi.S           |  40 ----
 arch/arm/include/asm/hardware/entry-macro-iomd.S   | 131 -------------
 arch/arm/include/asm/insn.h                        |  24 +++
 arch/arm/include/asm/irq.h                         |   1 -
 arch/arm/include/asm/mach/arch.h                   |   2 -
 arch/arm/include/asm/page.h                        |   4 +
 arch/arm/include/asm/percpu.h                      |  25 ++-
 arch/arm/include/asm/smp.h                         |   5 -
 arch/arm/include/asm/stacktrace.h                  |  12 ++
 arch/arm/include/asm/switch_to.h                   |   3 +-
 arch/arm/include/asm/thread_info.h                 |  35 +---
 arch/arm/include/asm/tls.h                         |  13 +-
 arch/arm/include/asm/v7m.h                         |   3 +-
 arch/arm/kernel/asm-offsets.c                      |   3 -
 arch/arm/kernel/entry-armv.S                       | 209 +++++++++++++++++----
 arch/arm/kernel/entry-common.S                     |  16 +-
 arch/arm/kernel/entry-header.S                     |  48 ++++-
 arch/arm/kernel/entry-v7m.S                        |  39 ++--
 arch/arm/kernel/head-common.S                      |   4 +-
 arch/arm/kernel/irq.c                              |  61 ++++--
 arch/arm/kernel/module.c                           |  85 +++++++++
 arch/arm/kernel/process.c                          |   7 +-
 arch/arm/kernel/setup.c                            |   8 +-
 arch/arm/kernel/sleep.S                            |   6 +
 arch/arm/kernel/smp.c                              |  16 +-
 arch/arm/kernel/traps.c                            | 107 ++++++++++-
 arch/arm/kernel/unwind.c                           |  50 +++--
 arch/arm/kernel/vmlinux.lds.S                      |   4 +-
 arch/arm/lib/backtrace-clang.S                     |  14 +-
 arch/arm/lib/backtrace.S                           |   8 +
 arch/arm/lib/call_with_stack.S                     |  33 +++-
 arch/arm/lib/copy_from_user.S                      |  13 +-
 arch/arm/lib/copy_template.S                       |  67 +++----
 arch/arm/lib/copy_to_user.S                        |  13 +-
 arch/arm/lib/memcpy.S                              |  13 +-
 arch/arm/lib/memmove.S                             |  60 ++----
 arch/arm/lib/memset.S                              |   7 +-
 arch/arm/mach-footbridge/common.c                  |  87 +++++++++
 .../arm/mach-footbridge/include/mach/entry-macro.S | 107 -----------
 arch/arm/mach-iop32x/cp6.c                         |  10 +-
 arch/arm/mach-iop32x/include/mach/entry-macro.S    |  31 ---
 arch/arm/mach-iop32x/include/mach/irqs.h           |   2 +-
 arch/arm/mach-iop32x/iop3xx.h                      |   1 +
 arch/arm/mach-iop32x/irq.c                         |  29 ++-
 arch/arm/mach-iop32x/irqs.h                        |  60 +++---
 arch/arm/mach-rpc/fiq.S                            |   5 +-
 arch/arm/mach-rpc/include/mach/entry-macro.S       |  13 --
 arch/arm/mach-rpc/irq.c                            |  95 ++++++++++
 arch/arm/mm/Kconfig                                |   1 +
 drivers/irqchip/Kconfig                            |   1 +
 drivers/irqchip/irq-nvic.c                         |  22 +--
 58 files changed, 1217 insertions(+), 733 deletions(-)
 delete mode 100644 arch/arm/include/asm/entry-macro-multi.S
 delete mode 100644 arch/arm/include/asm/hardware/entry-macro-iomd.S
 delete mode 100644 arch/arm/mach-footbridge/include/mach/entry-macro.S
 delete mode 100644 arch/arm/mach-iop32x/include/mach/entry-macro.S
 delete mode 100644 arch/arm/mach-rpc/include/mach/entry-macro.S

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

             reply	other threads:[~2021-12-08  9:28 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-08  9:26 Ard Biesheuvel [this message]
2021-12-09 10:15 ` [GIT PULL] IRQ stacks and vmap'ed stack for ARM Arnd Bergmann
2021-12-09 13:38 ` Linus Walleij
2021-12-09 13:40   ` Russell King (Oracle)

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20211208092611.1012773-1-ardb@kernel.org \
    --to=ardb@kernel.org \
    --cc=arnd@arndb.de \
    --cc=keescook@chromium.org \
    --cc=keithpac@amazon.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux+pull@armlinux.org.uk \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux@armlinux.org.uk \
    --cc=maz@kernel.org \
    --cc=mr.bossman075@gmail.com \
    --cc=ndesaulniers@google.com \
    --cc=nico@fluxnic.net \
    --cc=tony@atomide.com \
    --cc=vladimir.murzin@arm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.