Subject: [RFC PATCH v1 0/3] powerpc/objtool: First step towards uaccess validation (v1)

From: Christophe Leroy <[email-masked]>
Date: Fri, 16 Jun 2023 15:47:49 +0200

This RFC is a first step towards the validation of userspace accesses.

For the time being it targets only PPC32 and includes hacks directly in
core part of objtool.

It doesn't yet include handling of uaccess at all but is a first step
to support objtool validation.

Assembly files have been kept aside as they require a huge work before
being ready for objtool validation and are not directly relevant for
uaccess validation.

Please have a look and hold hand if I'm going in the wrong direction.

For the few hacks done directly in the core part of objtool don't
hesitate to suggest ways to make it more generic.

Christophe Leroy (3):
  Revert "powerpc/bug: Provide better flexibility to
    WARN_ON/__WARN_FLAGS() with asm goto"
  powerpc: Mark all .S files invalid for objtool
  powerpc: WIP draft support to objtool check

 arch/powerpc/Kconfig                          |  1 +
 arch/powerpc/boot/Makefile                    | 17 +++++
 arch/powerpc/crypto/Makefile                  | 13 ++++
 arch/powerpc/include/asm/book3s/64/kup.h      |  2 +-
 arch/powerpc/include/asm/bug.h                | 67 +++----------------
 arch/powerpc/include/asm/extable.h            | 14 ----
 arch/powerpc/include/asm/ppc_asm.h            | 11 ++-
 arch/powerpc/kernel/Makefile                  | 44 ++++++++++++
 arch/powerpc/kernel/misc_32.S                 |  2 +-
 arch/powerpc/kernel/trace/Makefile            |  4 ++
 arch/powerpc/kernel/traps.c                   |  9 +--
 arch/powerpc/kernel/vdso/Makefile             | 11 +++
 arch/powerpc/kexec/Makefile                   |  2 +
 arch/powerpc/kvm/Makefile                     | 13 ++++
 arch/powerpc/lib/Makefile                     | 25 +++++++
 arch/powerpc/mm/book3s32/Makefile             |  3 +
 arch/powerpc/mm/nohash/Makefile               |  3 +
 arch/powerpc/perf/Makefile                    |  2 +
 arch/powerpc/platforms/44x/Makefile           |  2 +
 arch/powerpc/platforms/52xx/Makefile          |  3 +
 arch/powerpc/platforms/83xx/Makefile          |  2 +
 arch/powerpc/platforms/cell/spufs/Makefile    |  3 +
 arch/powerpc/platforms/pasemi/Makefile        |  2 +
 arch/powerpc/platforms/powermac/Makefile      |  3 +
 arch/powerpc/platforms/powernv/Makefile       |  3 +
 arch/powerpc/platforms/ps3/Makefile           |  2 +
 arch/powerpc/platforms/pseries/Makefile       |  2 +
 arch/powerpc/purgatory/Makefile               |  3 +
 arch/powerpc/sysdev/Makefile                  |  3 +
 arch/powerpc/xmon/Makefile                    |  3 +
 scripts/Makefile.lib                          |  2 +-
 tools/objtool/arch/powerpc/decode.c           | 60 +++++++++++++++--
 .../arch/powerpc/include/arch/special.h       |  2 +-
 tools/objtool/arch/powerpc/special.c          | 44 +++++++++++-
 tools/objtool/check.c                         | 29 ++++----
 tools/objtool/include/objtool/elf.h           |  1 +
 tools/objtool/include/objtool/special.h       |  2 +-
 .../powerpc/primitives/asm/extable.h          |  1 -
 38 files changed, 311 insertions(+), 104 deletions(-)
 delete mode 120000 tools/testing/selftests/powerpc/primitives/asm/extable.h

-- 
2.40.1