lkml.org 
[lkml]   [2022]   [Jun]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[PATCH v2 0/3] jump_label: get rid of NOP patching where possible
Date
The only architecture that actually needs to convert compiler generated
jump label NOP encodings into something else at runtime is MIPS, because
the assembler cannot be trusted to emit a sequence that can be safely
patched into a branch instruction.

All other architectures either do nothing with jump label NOPs at load
time, or patch a perfectly good NOP into a different one, or into the same
one - none of this seems very useful, so let's get rid of it where we
can.

Changes since v1:
- use a default implementation of arch_jump_label_transform_static()
instead of an empty macro in patch #3
- fix MIPS with CONFIG_MODULES=n
- add acks from Mark and Peter to patch #3

Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: Heiko Carstens <hca@linux.ibm.com>
Cc: Vasily Gorbik <gor@linux.ibm.com>
Cc: Alexander Gordeev <agordeev@linux.ibm.com>
Cc: Christian Borntraeger <borntraeger@linux.ibm.com>
Cc: Sven Schnelle <svens@linux.ibm.com>
Cc: linux-mips@vger.kernel.org
Cc: linux-s390@vger.kernel.org

Ard Biesheuvel (3):
jump_label: s390: avoid pointless initial NOP patching
jump_label: mips: move module NOP patching into arch code
jump_label: make initial NOP patching the special case

Documentation/staging/static-keys.rst | 3 --
arch/arc/kernel/jump_label.c | 13 -------
arch/arm/kernel/jump_label.c | 6 ---
arch/arm64/kernel/jump_label.c | 11 ------
arch/mips/include/asm/jump_label.h | 2 +
arch/mips/kernel/jump_label.c | 19 +++++++++
arch/mips/kernel/module.c | 5 ++-
arch/parisc/kernel/jump_label.c | 11 ------
arch/riscv/kernel/jump_label.c | 12 ------
arch/s390/include/asm/jump_label.h | 5 +--
arch/s390/kernel/jump_label.c | 28 +++----------
arch/s390/kernel/module.c | 1 -
arch/sparc/kernel/module.c | 3 --
arch/x86/kernel/jump_label.c | 13 -------
arch/x86/kernel/module.c | 3 --
include/linux/jump_label.h | 7 +---
kernel/jump_label.c | 41 +++-----------------
17 files changed, 38 insertions(+), 145 deletions(-)

--
2.35.1

\
 
 \ /
  Last update: 2022-06-15 17:42    [W:0.100 / U:1.328 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site