[PATCH v3 00/13] ARM: ftrace fixes and cleanups

Ard Biesheuvel ardb at kernel.org
Thu Feb 3 00:21:51 PST 2022


This series addresses a number of issues in the ARM support code for
ftrace, mostly related to Thumb2 but affecting other configurations as
well.

Changes since v2:
- simplify kprobes patch and avoid global FPREG_ macros
- update cacheflush code to avoid R7 and R11 entirely, instead of
  preserving/restoring them
- add new patch to disable ftrace in Broadcom Kona SMC code
- add acks from various folks (thanks!)

Changes since v1:
- add a couple of patches to enable ftrace in Thumb2 mode when building
  with Clang, which was the one remaining unsupported configuration
- fix up some minor code issues caught by the bots
- add some acks

Cc: Steven Rostedt <rostedt at goodmis.org>
Cc: Sudeep Holla <sudeep.holla at arm.com>
Cc: Cristian Marussi <cristian.marussi at arm.com>
Cc: Nathan Chancellor <nathan at kernel.org>
Cc: Nick Desaulniers <ndesaulniers at google.com>
Cc: Arnd Bergmann <arnd at arndb.de>
Cc: Linus Walleij <linus.walleij at linaro.org>
Cc: Masami Hiramatsu <mhiramat at kernel.org>

Ard Biesheuvel (13):
  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
  drivers/firmware/scmi: disable ftrace for Clang 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 ++-
 drivers/firmware/arm_scmi/Makefile       |   7 ++
 15 files changed, 189 insertions(+), 133 deletions(-)

-- 
2.30.2




More information about the linux-arm-kernel mailing list