diff options
Diffstat (limited to 'include/linux/module.h')
| -rw-r--r-- | include/linux/module.h | 13 | 
1 files changed, 11 insertions, 2 deletions
diff --git a/include/linux/module.h b/include/linux/module.h index da4b6fbe8ebe..8100bb477d86 100644 --- a/include/linux/module.h +++ b/include/linux/module.h @@ -26,6 +26,7 @@  #include <linux/tracepoint-defs.h>  #include <linux/srcu.h>  #include <linux/static_call_types.h> +#include <linux/cfi.h>  #include <linux/percpu.h>  #include <asm/module.h> @@ -128,13 +129,17 @@ extern void cleanup_module(void);  #define module_init(initfn)					\  	static inline initcall_t __maybe_unused __inittest(void)		\  	{ return initfn; }					\ -	int init_module(void) __copy(initfn) __attribute__((alias(#initfn))); +	int init_module(void) __copy(initfn)			\ +		__attribute__((alias(#initfn)));		\ +	__CFI_ADDRESSABLE(init_module, __initdata);  /* This is only required if you want to be unloadable. */  #define module_exit(exitfn)					\  	static inline exitcall_t __maybe_unused __exittest(void)		\  	{ return exitfn; }					\ -	void cleanup_module(void) __copy(exitfn) __attribute__((alias(#exitfn))); +	void cleanup_module(void) __copy(exitfn)		\ +		__attribute__((alias(#exitfn)));		\ +	__CFI_ADDRESSABLE(cleanup_module, __exitdata);  #endif @@ -376,6 +381,10 @@ struct module {  	const s32 *crcs;  	unsigned int num_syms; +#ifdef CONFIG_CFI_CLANG +	cfi_check_fn cfi_check; +#endif +  	/* Kernel parameters. */  #ifdef CONFIG_SYSFS  	struct mutex param_lock;  |