summaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/jump_label.c
diff options
context:
space:
mode:
authorHeiko Carstens <hca@linux.ibm.com>2021-10-04 12:02:35 +0200
committerVasily Gorbik <gor@linux.ibm.com>2021-10-11 20:55:58 +0200
commit4e0502b8b31032abbc0424cff222139288a3891a (patch)
tree0ccb570a3e849fbd3f4a11dd6b2f79ad9ef59508 /arch/s390/kernel/jump_label.c
parents390/ftrace: add missing serialization for graph caller patching (diff)
downloadlinux-4e0502b8b31032abbc0424cff222139288a3891a.tar.xz
linux-4e0502b8b31032abbc0424cff222139288a3891a.zip
s390/jump_label: make use of HAVE_JUMP_LABEL_BATCH
Specify HAVE_JUMP_LABEL_BATCH in header file. This allows to make use of the arch_jump_label_transform_queue()/arch_jump_label_transform_apply() mechanism. However unlike on x86, which currently is the only user of this mechanism, the to be patched instructions are still directly modified. The only difference to before is that serialization is only done after all instructions have been modified. This way the number of serialization/synchronization events is reduced. Signed-off-by: Heiko Carstens <hca@linux.ibm.com> Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
Diffstat (limited to '')
-rw-r--r--arch/s390/kernel/jump_label.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/s390/kernel/jump_label.c b/arch/s390/kernel/jump_label.c
index 1e245da82197..edefb40f172b 100644
--- a/arch/s390/kernel/jump_label.c
+++ b/arch/s390/kernel/jump_label.c
@@ -79,8 +79,21 @@ void arch_jump_label_transform(struct jump_entry *entry,
text_poke_sync();
}
+bool arch_jump_label_transform_queue(struct jump_entry *entry,
+ enum jump_label_type type)
+{
+ __jump_label_transform(entry, type, 0);
+ return true;
+}
+
+void arch_jump_label_transform_apply(void)
+{
+ text_poke_sync();
+}
+
void arch_jump_label_transform_static(struct jump_entry *entry,
enum jump_label_type type)
{
__jump_label_transform(entry, type, 1);
+ text_poke_sync();
}