Subject: [J][PULL] Kernel livepatch support for for s390x To: frank.heimes@canonical.com Cc: frank.heimes@canonical.com BugLink: https://bugs.launchpad.net/bugs/1639924 The 13 patches/commits of this pull request is the minimal patch set to enable livepatch for s390x to the kernel. The additional kernel option patch enables EXPOLINE_EXTERN, that was introduced by: 13f43f2f6771 s390/nospec: build expoline.o for modules_prepare target. --- The following changes since commit 941bdeb5ab2258758fce5f4d06296da98bfa7e82: UBUNTU: Ubuntu-5.15.0-48.54 (2022-08-26 11:12:42 +0200) are available in the Git repository at: https://git.launchpad.net/~fheimes/+git/lp1639924/ bb1554a069b5bddf25d8cd640edb67ae8b53146b for you to fetch changes up to bb1554a069b5bddf25d8cd640edb67ae8b53146b: UBUNTU: [Config] Set 'y' as default for CONFIG_EXPOLINE_EXTERN kernel config option (2022-09-07 13:28:09 +0000) ---------------------------------------------------------------- Frank Heimes (1): UBUNTU: [Config] Set 'y' as default for CONFIG_EXPOLINE_EXTERN kernel config option Josh Poimboeuf (1): bug: Use normal relative pointers in 'struct bug_entry' Peter Zijlstra (6): sched: Improve try_invoke_on_locked_down_task() sched,rcu: Rework try_invoke_on_locked_down_task() sched,livepatch: Use task_call_func() sched: Simplify wake_up_*idle*() sched,livepatch: Use wake_up_if_idle() sched: Improve wake_up_all_idle_cpus() take #2 Vasily Gorbik (6): s390/entry: remove unused expoline thunk s390: remove unused expoline to BC instructions s390/nospec: generate single register thunks if possible s390/nospec: add an option to use thunk-extern s390/nospec: align and size extern thunks s390/nospec: build expoline.o for modules_prepare target arch/arm64/include/asm/asm-bug.h | 4 +- arch/powerpc/include/asm/bug.h | 14 +++-- arch/riscv/include/asm/bug.h | 4 +- arch/s390/Kconfig | 15 +++++ arch/s390/Makefile | 20 +++++-- arch/s390/include/asm/bug.h | 5 +- arch/s390/include/asm/nospec-insn.h | 91 ++++++++++++----------------- arch/s390/kernel/entry.S | 1 - arch/s390/kernel/nospec-branch.c | 25 ++------ arch/s390/lib/Makefile | 2 + arch/s390/lib/expoline/Makefile | 3 + arch/s390/lib/expoline/expoline.S | 12 ++++ arch/s390/tools/gcc-thunk-extern.sh | 24 ++++++++ arch/x86/include/asm/bug.h | 2 +- debian.master/config/annotations | 3 + debian.master/config/config.common.ubuntu | 1 + include/linux/sched/idle.h | 4 ++ include/linux/wait.h | 3 +- kernel/livepatch/transition.c | 95 ++++++++++++++++--------------- kernel/rcu/tasks.h | 12 ++-- kernel/rcu/tree_stall.h | 8 +-- kernel/sched/core.c | 83 +++++++++++++++------------ kernel/smp.c | 12 ++-- lib/bug.c | 15 +++-- scripts/mod/modpost.c | 5 ++ 25 files changed, 259 insertions(+), 204 deletions(-) create mode 100644 arch/s390/lib/expoline/Makefile create mode 100644 arch/s390/lib/expoline/expoline.S create mode 100755 arch/s390/tools/gcc-thunk-extern.sh