[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20220608104512.1176209-1-ardb@kernel.org>
Date: Wed, 8 Jun 2022 12:45:09 +0200
From: Ard Biesheuvel <ardb@...nel.org>
To: linux-kernel@...r.kernel.org
Cc: Ard Biesheuvel <ardb@...nel.org>,
Peter Zijlstra <peterz@...radead.org>,
Thomas Bogendoerfer <tsbogend@...ha.franken.de>,
Heiko Carstens <hca@...ux.ibm.com>,
Vasily Gorbik <gor@...ux.ibm.com>,
Alexander Gordeev <agordeev@...ux.ibm.com>,
Christian Borntraeger <borntraeger@...ux.ibm.com>,
Sven Schnelle <svens@...ux.ibm.com>,
linux-mips@...r.kernel.org, linux-s390@...r.kernel.org
Subject: [PATCH 0/3] jump_label: get rid of NOP patching where possible
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.
Cc: Peter Zijlstra <peterz@...radead.org>
Cc: Thomas Bogendoerfer <tsbogend@...ha.franken.de>
Cc: Heiko Carstens <hca@...ux.ibm.com>
Cc: Vasily Gorbik <gor@...ux.ibm.com>
Cc: Alexander Gordeev <agordeev@...ux.ibm.com>
Cc: Christian Borntraeger <borntraeger@...ux.ibm.com>
Cc: Sven Schnelle <svens@...ux.ibm.com>
Cc: linux-mips@...r.kernel.org
Cc: linux-s390@...r.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 | 17 ++++++++
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, 34 insertions(+), 147 deletions(-)
--
2.30.2
Powered by blists - more mailing lists