[<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