summary refs log tree commit diff
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2021-07-25 10:21:19 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2021-07-25 10:21:19 -0700
commitd1b178254ca39a89b3c6407e29e87dd25734399e (patch)
treeb092a0f8331b6a7175c2f7ee5fb373dbd68e2f62
parente049597e7ec11fdc276d787d320b01ef1f647c4a (diff)
parente48a12e546ecbfb0718176037eae0ad60598a29a (diff)
downloadlinux-d1b178254ca39a89b3c6407e29e87dd25734399e.tar.gz
Merge tag 'locking-urgent-2021-07-25' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 jump label fix from Thomas Gleixner:
 "A single fix for jump labels to prevent the compiler from agressive
  un-inlining which results in a section mismatch"

* tag 'locking-urgent-2021-07-25' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  jump_labels: Mark __jump_label_transform() as __always_inlined to work around aggressive compiler un-inlining
-rw-r--r--arch/x86/kernel/jump_label.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/arch/x86/kernel/jump_label.c b/arch/x86/kernel/jump_label.c
index 674906fad43b..68f091ba8443 100644
--- a/arch/x86/kernel/jump_label.c
+++ b/arch/x86/kernel/jump_label.c
@@ -79,9 +79,10 @@ __jump_label_patch(struct jump_entry *entry, enum jump_label_type type)
 	return (struct jump_label_patch){.code = code, .size = size};
 }
 
-static inline void __jump_label_transform(struct jump_entry *entry,
-					  enum jump_label_type type,
-					  int init)
+static __always_inline void
+__jump_label_transform(struct jump_entry *entry,
+		       enum jump_label_type type,
+		       int init)
 {
 	const struct jump_label_patch jlp = __jump_label_patch(entry, type);