diff options
author | Kees Cook <keescook@chromium.org> | 2018-10-10 17:18:21 -0700 |
---|---|---|
committer | James Morris <james.morris@microsoft.com> | 2018-10-10 20:40:21 -0700 |
commit | 5b89c1bd4c7e5c5ca8c5374fde35ecee6e16496c (patch) | |
tree | 1149bf533d702366169684a6ea71254f2d8917d6 /include/linux/lsm_hooks.h | |
parent | 6907e3746fa1b9b685230098266bbeba99b93c7d (diff) | |
download | linux-next-5b89c1bd4c7e5c5ca8c5374fde35ecee6e16496c.tar.gz |
LSM: Convert from initcall to struct lsm_info
In preparation for doing more interesting LSM init probing, this converts
the existing initcall system into an explicit call into a function pointer
from a section-collected struct lsm_info array.
Signed-off-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Casey Schaufler <casey@schaufler-ca.com>
Reviewed-by: James Morris <james.morris@microsoft.com>
Reviewed-by: John Johansen <john.johansen@canonical.com>
Signed-off-by: James Morris <james.morris@microsoft.com>
Diffstat (limited to 'include/linux/lsm_hooks.h')
-rw-r--r-- | include/linux/lsm_hooks.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/include/linux/lsm_hooks.h b/include/linux/lsm_hooks.h index 97a020c616ad..d13059feca09 100644 --- a/include/linux/lsm_hooks.h +++ b/include/linux/lsm_hooks.h @@ -2039,6 +2039,18 @@ extern char *lsm_names; extern void security_add_hooks(struct security_hook_list *hooks, int count, char *lsm); +struct lsm_info { + int (*init)(void); /* Required. */ +}; + +extern struct lsm_info __start_lsm_info[], __end_lsm_info[]; + +#define security_initcall(lsm) \ + static struct lsm_info __lsm_##lsm \ + __used __section(.lsm_info.init) \ + __aligned(sizeof(unsigned long)) \ + = { .init = lsm, } + #ifdef CONFIG_SECURITY_SELINUX_DISABLE /* * Assuring the safety of deleting a security module is up to |