lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <cover.1679456900.git.jpoimboe@kernel.org>
Date:   Tue, 21 Mar 2023 21:00:06 -0700
From:   Josh Poimboeuf <jpoimboe@...nel.org>
To:     x86@...nel.org
Cc:     linux-kernel@...r.kernel.org,
        Peter Zijlstra <peterz@...radead.org>,
        Mark Rutland <mark.rutland@....com>,
        Jason Baron <jbaron@...mai.com>,
        Steven Rostedt <rostedt@...dmis.org>,
        Ard Biesheuvel <ardb@...nel.org>,
        Christophe Leroy <christophe.leroy@...roup.eu>,
        Paolo Bonzini <pbonzini@...hat.com>,
        Sean Christopherson <seanjc@...gle.com>,
        Sami Tolvanen <samitolvanen@...gle.com>,
        Nick Desaulniers <ndesaulniers@...gle.com>,
        Will McVicker <willmcvicker@...gle.com>,
        Kees Cook <keescook@...omium.org>,
        linux-arm-kernel@...ts.infradead.org
Subject: [PATCH v2 00/11] static_call: Improve NULL/ret0 handling

Peter pointed out that v1 had CFI violations on arm64 with
CONFIG_CFI_CLANG.  Then I realized there are already CFI violations
today in the existing code.

So this ended up turning into a complete rewrite of v1.

Highlights include:

- Several cleanups
- Fix arm64 CFI violations
- Make NULL pointer behavior consistent across configs
- Merge NULL and RET0 into a single concept


v1 can be found here:

  https://lkml.kernel.org/lkml/cover.1678474914.git.jpoimboe@kernel.org

Josh Poimboeuf (11):
  static_call: Improve key type abstraction
  static_call: Flip key type union bit
  static_call: Remove static_call_mod_init() declaration
  static_call: Remove static_call.h dependency on cpu.h
  static_call: Make ARCH_ADD_TRAMP_KEY() generic
  static_call: "EXPORT_STATIC_CALL_TRAMP" -> "EXPORT_STATIC_CALL_RO"
  static_call: Reorganize static call headers
  arm64/static_call: Fix static call CFI violations
  static_call: Make NULL static calls consistent
  static_call: Remove static_call_cond()
  static_call: Remove DEFINE_STATIC_CALL_RET0()

 arch/Kconfig                              |   4 +
 arch/arm/include/asm/paravirt.h           |   2 +-
 arch/arm64/include/asm/paravirt.h         |   2 +-
 arch/arm64/include/asm/static_call.h      |  29 ++
 arch/powerpc/include/asm/static_call.h    |   1 -
 arch/powerpc/kernel/irq.c                 |   2 +-
 arch/powerpc/kernel/static_call.c         |   6 +-
 arch/x86/events/amd/brs.c                 |   2 +-
 arch/x86/events/amd/core.c                |   2 +-
 arch/x86/events/core.c                    |  29 +-
 arch/x86/include/asm/kvm-x86-ops.h        |   6 +-
 arch/x86/include/asm/kvm-x86-pmu-ops.h    |   3 +-
 arch/x86/include/asm/kvm_host.h           |   4 +-
 arch/x86/include/asm/paravirt.h           |   2 +-
 arch/x86/include/asm/perf_event.h         |   2 +-
 arch/x86/include/asm/preempt.h            |   6 +-
 arch/x86/include/asm/static_call.h        |  22 +-
 arch/x86/kernel/alternative.c             |   6 -
 arch/x86/kernel/paravirt.c                |   1 +
 arch/x86/kernel/static_call.c             |  89 +-----
 arch/x86/kvm/irq.c                        |   2 +-
 arch/x86/kvm/lapic.c                      |  22 +-
 arch/x86/kvm/pmu.c                        |   4 +-
 arch/x86/kvm/x86.c                        |  28 +-
 block/bio.c                               |   1 +
 include/linux/entry-common.h              |   2 +-
 include/linux/entry-kvm.h                 |   2 +-
 include/linux/kernel.h                    |   4 +-
 include/linux/module.h                    |   2 +-
 include/linux/sched.h                     |   2 +-
 include/linux/static_call.h               | 369 ++++++++++------------
 include/linux/static_call_types.h         |  74 +----
 kernel/Makefile                           |   2 +-
 kernel/cgroup/cgroup.c                    |   1 +
 kernel/events/core.c                      |  15 +-
 kernel/sched/core.c                       |  18 +-
 kernel/static_call.c                      |  13 +
 kernel/static_call_inline.c               |  64 +++-
 security/keys/trusted-keys/trusted_core.c |   2 +-
 sound/soc/intel/avs/trace.c               |   1 +
 tools/include/linux/static_call_types.h   |  74 +----
 41 files changed, 369 insertions(+), 553 deletions(-)
 create mode 100644 arch/arm64/include/asm/static_call.h

-- 
2.39.2

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ