Commit cb9010f8 authored by Peter Zijlstra's avatar Peter Zijlstra
Browse files

x86/ibt: Ensure module init/exit points have references



Since the references to the module init/exit points only have external
references, a module LTO run will consider them 'unused' and seal
them, leading to an immediate fail on module load.

Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: default avatarJosh Poimboeuf <jpoimboe@redhat.com>
Link: https://lore.kernel.org/r/20220308154319.113767246@infradead.org
parent 2b6ff7de
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -34,8 +34,17 @@ static inline void cfi_module_remove(struct module *mod, unsigned long base_addr

#else /* !CONFIG_CFI_CLANG */

#define __CFI_ADDRESSABLE(fn, __attr)
#ifdef CONFIG_X86_KERNEL_IBT

#define __CFI_ADDRESSABLE(fn, __attr) \
	const void *__cfi_jt_ ## fn __visible __attr = (void *)&fn

#endif /* CONFIG_X86_KERNEL_IBT */

#endif /* CONFIG_CFI_CLANG */

#ifndef __CFI_ADDRESSABLE
#define __CFI_ADDRESSABLE(fn, __attr)
#endif

#endif /* _LINUX_CFI_H */