summaryrefslogtreecommitdiff
path: root/include/linux/module.h
diff options
context:
space:
mode:
authorTony Lindgren <tony@atomide.com>2021-05-18 09:45:08 +0300
committerTony Lindgren <tony@atomide.com>2021-05-18 09:45:08 +0300
commit85ebe5aeef9b0bf4c91ff91652b32f9c54f71d34 (patch)
treedc6b176404218efac28a4a1a0c240cb36f1e9173 /include/linux/module.h
parente9aa9c75c58e2e16be16ec2b5db5e14804d07213 (diff)
parent040ab72ee10ea88e1883ad143b3e2b77596abc31 (diff)
Merge branch 'fixes-rc1' into fixes
Diffstat (limited to 'include/linux/module.h')
-rw-r--r--include/linux/module.h16
1 files changed, 11 insertions, 5 deletions
diff --git a/include/linux/module.h b/include/linux/module.h
index 59f094fa6f74..8100bb477d86 100644
--- a/include/linux/module.h
+++ b/include/linux/module.h
@@ -26,13 +26,11 @@
#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>
-/* Not Yet Implemented */
-#define MODULE_SUPPORTED_DEVICE(name)
-
#define MODULE_NAME_LEN MAX_PARAM_PREFIX_LEN
struct modversion_info {
@@ -131,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
@@ -379,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;