[RFC PATCH 0/7] static call updates

From: Ard Biesheuvel
Date: Tue Nov 09 2021 - 11:46:12 EST


This series addresses a number of asymmetries and inconsistencies in
both the API and the implementation of static calls. The aim is to
ensure that the documented API is fully implemented and works correctly,
regardless of which variety of static calls the arch decides to
implement.

Another goal of this series is to ensure that the caller of the API does
not need to choose a particular kind of macro depending on whether the
static call exports its key and/or whether the static call in question
may implement the NULL flavor.

Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Josh Poimboeuf <jpoimboe@xxxxxxxxxx>
Cc: Jason Baron <jbaron@xxxxxxxxxx>
Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>
Cc: Mark Rutland <mark.rutland@xxxxxxx>
Cc: Kees Cook <keescook@xxxxxxxxxxxx>

Ard Biesheuvel (7):
static_call: get rid of static_call_cond()
static_call: deal with unexported keys without cluttering up the API
static_call: use helper to access non-exported key
static_call: fix broken static_call_query() for non-exported keys
static_call: use non-function types to refer to the trampolines
static_call: rename EXPORT_ macros to be more self-explanatory
static_call: add generic support for non-exported keys

arch/x86/events/core.c | 20 ++--
arch/x86/include/asm/kvm_host.h | 4 +-
arch/x86/include/asm/preempt.h | 4 +-
arch/x86/include/asm/static_call.h | 6 -
arch/x86/kvm/irq.c | 2 +-
arch/x86/kvm/x86.c | 10 +-
include/asm-generic/vmlinux.lds.h | 5 +-
include/linux/kernel.h | 2 +-
include/linux/sched.h | 2 +-
include/linux/static_call.h | 117 +++++++++-----------
include/linux/static_call_types.h | 54 +++++----
kernel/extable.c | 1 +
kernel/sched/core.c | 8 +-
kernel/static_call.c | 29 +----
tools/include/linux/static_call_types.h | 54 +++++----
tools/objtool/check.c | 43 ++++---
16 files changed, 174 insertions(+), 187 deletions(-)

--
2.30.2