lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250116-always-inline-serialize-for-noinstr-v1-1-b7a37b2af04b@kernel.org>
Date: Thu, 16 Jan 2025 07:28:42 -0700
From: Nathan Chancellor <nathan@...nel.org>
To: x86@...nel.org
Cc: Juergen Gross <jgross@...e.com>, linux-kernel@...r.kernel.org, 
 llvm@...ts.linux.dev, kernel test robot <lkp@...el.com>, 
 Sean Christopherson <seanjc@...gle.com>, 
 Linux Kernel Functional Testing <lkft@...aro.org>, 
 Nathan Chancellor <nathan@...nel.org>
Subject: [PATCH] x86/asm: Always inline serialize()

serialize() may be called from noinstr code and if it is not inlined,
objtool may warn like:

  vmlinux.o: warning: objtool: __static_call_update_early+0x2a: call to serialize() leaves .noinstr.text section

Mark serialize() with __always_inline to clear up the warning and
prevent future ones from occurring.

Fixes: 0ef8047b737d ("x86/static-call: provide a way to do very early static-call updates")
Reported-by: kernel test robot <lkp@...el.com>
Closes: https://lore.kernel.org/202412181756.aJvzih2K-lkp@intel.com/
Reported-by: Sean Christopherson <seanjc@...gle.com>
Closes: https://lore.kernel.org/Z4bWnWYqu1LaD-JG@google.com/
Reported-by: Linux Kernel Functional Testing <lkft@...aro.org>
Closes: https://lore.kernel.org/CA+G9fYv-AgeUpP1yPDmy48T869Ms80jgUdjnwtBNoJmCKQvZDQ@mail.gmail.com/
Signed-off-by: Nathan Chancellor <nathan@...nel.org>
---
 arch/x86/include/asm/special_insns.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/include/asm/special_insns.h b/arch/x86/include/asm/special_insns.h
index fab7c8af27a4d00647f2f52e7fe4f91bd42a7291..03e7c2d495597597a635f83116fafa1a95ed357e 100644
--- a/arch/x86/include/asm/special_insns.h
+++ b/arch/x86/include/asm/special_insns.h
@@ -211,7 +211,7 @@ static inline int write_user_shstk_64(u64 __user *addr, u64 val)
 
 #define nop() asm volatile ("nop")
 
-static inline void serialize(void)
+static __always_inline void serialize(void)
 {
 	/* Instruction opcode for SERIALIZE; supported in binutils >= 2.35. */
 	asm volatile(".byte 0xf, 0x1, 0xe8" ::: "memory");

---
base-commit: 37bc915c6ad0fb8a192dafb6b7046c79cad1f4a2
change-id: 20250116-always-inline-serialize-for-noinstr-4e9e9826d967

Best regards,
-- 
Nathan Chancellor <nathan@...nel.org>


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ