* [GIT PULL] IRQ stacks and vmap'ed stack for ARM
@ 2021-12-08 9:26 Ard Biesheuvel
2021-12-09 10:15 ` Arnd Bergmann
2021-12-09 13:38 ` Linus Walleij
0 siblings, 2 replies; 4+ messages in thread
From: Ard Biesheuvel @ 2021-12-08 9:26 UTC (permalink / raw)
To: linux-arm-kernel, linux+pull
Cc: Ard Biesheuvel, Russell King, Nicolas Pitre, Arnd Bergmann,
Kees Cook, Keith Packard, Linus Walleij, Nick Desaulniers,
Tony Lindgren, Marc Zyngier, Vladimir Murzin, Jesse Taube
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
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [GIT PULL] IRQ stacks and vmap'ed stack for ARM
2021-12-08 9:26 [GIT PULL] IRQ stacks and vmap'ed stack for ARM Ard Biesheuvel
@ 2021-12-09 10:15 ` Arnd Bergmann
2021-12-09 13:38 ` Linus Walleij
1 sibling, 0 replies; 4+ messages in thread
From: Arnd Bergmann @ 2021-12-09 10:15 UTC (permalink / raw)
To: Ard Biesheuvel
Cc: Linux ARM, linux+pull, Russell King, Nicolas Pitre, Arnd Bergmann,
Kees Cook, Keith Packard, Linus Walleij, Nick Desaulniers,
Tony Lindgren, Marc Zyngier, Vladimir Murzin, Jesse Taube
On Wed, Dec 8, 2021 at 10:26 AM Ard Biesheuvel <ardb@kernel.org> wrote:
> ----------------------------------------------------------------
> 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]
>
I don't understand all the changes in the entry code, but the parts that
I do understand all look good to me, I hope this can make it into v5.17.
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [GIT PULL] IRQ stacks and vmap'ed stack for ARM
2021-12-08 9:26 [GIT PULL] IRQ stacks and vmap'ed stack for ARM Ard Biesheuvel
2021-12-09 10:15 ` Arnd Bergmann
@ 2021-12-09 13:38 ` Linus Walleij
2021-12-09 13:40 ` Russell King (Oracle)
1 sibling, 1 reply; 4+ messages in thread
From: Linus Walleij @ 2021-12-09 13:38 UTC (permalink / raw)
To: Ard Biesheuvel
Cc: linux-arm-kernel, linux+pull, Russell King, Nicolas Pitre,
Arnd Bergmann, Kees Cook, Keith Packard, Nick Desaulniers,
Tony Lindgren, Marc Zyngier, Vladimir Murzin, Jesse Taube
On Wed, Dec 8, 2021 at 10:26 AM Ard Biesheuvel <ardb@kernel.org> wrote:
> 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)
The general looks of this patch set are very pleasing, I'm a bit
off the grid so I can't look at the fine details but my trust in that
Ard will even out any rough edges is high so FWIW:
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Yours,
Linus Walleij
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [GIT PULL] IRQ stacks and vmap'ed stack for ARM
2021-12-09 13:38 ` Linus Walleij
@ 2021-12-09 13:40 ` Russell King (Oracle)
0 siblings, 0 replies; 4+ messages in thread
From: Russell King (Oracle) @ 2021-12-09 13:40 UTC (permalink / raw)
To: Linus Walleij
Cc: Ard Biesheuvel, linux-arm-kernel, Nicolas Pitre, Arnd Bergmann,
Kees Cook, Keith Packard, Nick Desaulniers, Tony Lindgren,
Marc Zyngier, Vladimir Murzin, Jesse Taube
On Thu, Dec 09, 2021 at 02:38:15PM +0100, Linus Walleij wrote:
> On Wed, Dec 8, 2021 at 10:26 AM Ard Biesheuvel <ardb@kernel.org> wrote:
>
> > 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)
>
> The general looks of this patch set are very pleasing, I'm a bit
> off the grid so I can't look at the fine details but my trust in that
> Ard will even out any rough edges is high so FWIW:
> Acked-by: Linus Walleij <linus.walleij@linaro.org>
Git pull time isn't the time for acks since they can't be added to the
patches being pulled.
--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2021-12-09 13:41 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-12-08 9:26 [GIT PULL] IRQ stacks and vmap'ed stack for ARM Ard Biesheuvel
2021-12-09 10:15 ` Arnd Bergmann
2021-12-09 13:38 ` Linus Walleij
2021-12-09 13:40 ` Russell King (Oracle)
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).