[GIT PULL v2] ARM ftrace fixes for Thumb2, Clang and the EABI unwinder

Ard Biesheuvel ardb at kernel.org
Mon Feb 14 06:37:35 PST 2022


The following changes since commit 2fa3948244939471bfc93fa2f7cf3a1aadf79822:

  Merge tag 'arm-vmap-stacks-v6' of git://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux into devel-stable (2022-01-31 15:26:45 +0000)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git tags/arm-ftrace-for-rmk

for you to fetch changes up to d6800ca73a7d325627c045c16d7cfdc7465f4333:

  Revert "ARM: 9144/1: forbid ftrace with clang and thumb2_kernel" (2022-02-10 09:55:05 +0100)

PRv2: use rmk's current devel-stable as the start commit

----------------------------------------------------------------
ARM: ftrace fixes and cleanups

Make all flavors of ftrace available on all builds, regardless of ISA
choice, unwinder choice or compiler:
- use ADD not POP where possible
- fix a couple of Thumb2 related issues
- enable HAVE_FUNCTION_GRAPH_FP_TEST for robustness
- enable the graph tracer with the EABI unwinder
- avoid clobbering frame pointer registers to make Clang happy

Link: https://lore.kernel.org/linux-arm-kernel/20220203082204.1176734-1-ardb@kernel.org/

----------------------------------------------------------------
Ard Biesheuvel (12):
      ARM: ftrace: ensure that ADR takes the Thumb bit into account
      ARM: ftrace: use ADD not POP to counter PUSH at entry
      ARM: ftrace: use trampolines to keep .init.text in branching range
      ARM: ftrace: avoid redundant loads or clobbering IP
      ARM: ftrace: avoid unnecessary literal loads
      ARM: ftrace: enable HAVE_FUNCTION_GRAPH_FP_TEST
      ARM: unwind: track location of LR value in stack frame
      ARM: ftrace: enable the graph tracer with the EABI unwinder
      ARM: kprobes: treat R7 as the frame pointer register in Thumb2 builds
      ARM: cacheflush: avoid clobbering the frame pointer
      ARM: mach-bcm: disable ftrace in SMC invocation routines
      Revert "ARM: 9144/1: forbid ftrace with clang and thumb2_kernel"

 arch/arm/Kconfig                         |   4 +-
 arch/arm/Kconfig.debug                   |   2 +-
 arch/arm/include/asm/cacheflush.h        |  12 +--
 arch/arm/include/asm/ftrace.h            |  20 +----
 arch/arm/include/asm/stacktrace.h        |   3 +
 arch/arm/kernel/Makefile                 |   6 +-
 arch/arm/kernel/entry-ftrace.S           | 128 +++++++++++++++++--------------
 arch/arm/kernel/ftrace.c                 |  62 +++++++++++++--
 arch/arm/kernel/unwind.c                 |   7 +-
 arch/arm/mach-bcm/Makefile               |   1 +
 arch/arm/mach-exynos/mcpm-exynos.c       |   6 +-
 arch/arm/mm/cache-v7.S                   |  40 +++++-----
 arch/arm/probes/kprobes/actions-common.c |   8 +-
 arch/arm/probes/kprobes/actions-thumb.c  |  16 +++-
 14 files changed, 182 insertions(+), 133 deletions(-)



More information about the linux-arm-kernel mailing list