[PATCH 0/5] powerpc/64: avoid GOT addressing, don't put data in TOC

Nicholas Piggin npiggin at gmail.com
Fri Sep 23 13:25:07 AEST 2022


This is a cleaned up set of the initial prep patches from the pcrel
series, dealing with regularising addressing variables from asm
and using helper macros more consistently.

Nothing really new, this is more complete, splits out the changes
more logically, adds changelog/comments, and avoids touching ppc32
much (only slight comment change and interrupt stack magic number
change).

Patch 2 is probably actually required before we make the TOC readonly
at runtime, because there is one case (hcall_tracepoint_refcount)
that puts read-write data in the TOC section.

Thanks,
Nick

Nicholas Piggin (5):
  powerpc/64: use 32-bit immediate for STACK_FRAME_REGS_MARKER
  powerpc/64: asm use consistent global variable declaration and access
  powerpc/64: switch asm helpers from GOT to TOC relative addressing
  powerpc/64: provide a helper macro to load r2 with the kernel TOC
  powerpc/64e: provide an addressing macro for use with TOC in alternate
    register

 arch/powerpc/boot/opal-calls.S                |  6 ++--
 arch/powerpc/boot/ppc_asm.h                   | 10 ++++++
 arch/powerpc/include/asm/ppc_asm.h            | 20 ++++++++++-
 arch/powerpc/include/asm/ptrace.h             |  5 +--
 arch/powerpc/kernel/entry_32.S                |  6 ++--
 arch/powerpc/kernel/exceptions-64e.S          | 34 ++++++++-----------
 arch/powerpc/kernel/exceptions-64s.S          |  8 ++---
 arch/powerpc/kernel/head_64.S                 | 11 ++----
 arch/powerpc/kernel/interrupt_64.S            | 28 +++++----------
 arch/powerpc/kernel/optprobes_head.S          |  2 +-
 arch/powerpc/kernel/swsusp_asm64.S            | 16 +++------
 arch/powerpc/kernel/trace/ftrace_low.S        |  2 +-
 arch/powerpc/kernel/trace/ftrace_mprofile.S   |  6 ++--
 arch/powerpc/kernel/vector.S                  | 15 ++++----
 arch/powerpc/kvm/book3s_64_entry.S            |  2 +-
 arch/powerpc/kvm/book3s_hv_rmhandlers.S       |  4 +--
 arch/powerpc/kvm/tm.S                         |  2 +-
 arch/powerpc/lib/copypage_64.S                |  7 +---
 arch/powerpc/lib/string_64.S                  |  7 +---
 arch/powerpc/mm/nohash/tlb_low_64e.S          |  4 +--
 arch/powerpc/perf/bhrb.S                      |  2 +-
 .../powerpc/platforms/powernv/opal-wrappers.S |  2 +-
 arch/powerpc/platforms/pseries/hvCall.S       |  4 +--
 arch/powerpc/xmon/spr_access.S                |  4 +--
 24 files changed, 97 insertions(+), 110 deletions(-)

-- 
2.37.2



More information about the Linuxppc-dev mailing list