[PATCH 09/18] LSM: Record LSM name in struct lsm_info

2018-09-15 Thread Kees Cook
In preparation for making LSM selections outside of the LSMs, include
the name of LSMs in struct lsm_info.

Signed-off-by: Kees Cook 
---
 include/linux/lsm_hooks.h | 4 
 1 file changed, 4 insertions(+)

diff --git a/include/linux/lsm_hooks.h b/include/linux/lsm_hooks.h
index ec3419b9b16f..a7833193e9e9 100644
--- a/include/linux/lsm_hooks.h
+++ b/include/linux/lsm_hooks.h
@@ -2045,6 +2045,7 @@ enum lsm_type {
 };
 
 struct lsm_info {
+   const char *name;   /* Populated automatically. */
enum lsm_type type; /* Optional: default is LSM_TYPE_EXCLUSIVE */
int (*init)(void);
 };
@@ -2052,10 +2053,13 @@ struct lsm_info {
 extern struct lsm_info __start_lsm_info[], __end_lsm_info[];
 
 #define DEFINE_LSM(lsm)
\
+   static const char __lsm_name_##lsm[] __initconst\
+   __aligned(1) = #lsm;\
static const struct lsm_info __lsm_##lsm\
__used __section(.lsm_info.init)\
__aligned(sizeof(unsigned long))\
= { \
+   .name = __lsm_name_##lsm,   \
 
 #define END_LSM  }
 
-- 
2.17.1



[PATCH 09/18] LSM: Record LSM name in struct lsm_info

2018-09-15 Thread Kees Cook
In preparation for making LSM selections outside of the LSMs, include
the name of LSMs in struct lsm_info.

Signed-off-by: Kees Cook 
---
 include/linux/lsm_hooks.h | 4 
 1 file changed, 4 insertions(+)

diff --git a/include/linux/lsm_hooks.h b/include/linux/lsm_hooks.h
index ec3419b9b16f..a7833193e9e9 100644
--- a/include/linux/lsm_hooks.h
+++ b/include/linux/lsm_hooks.h
@@ -2045,6 +2045,7 @@ enum lsm_type {
 };
 
 struct lsm_info {
+   const char *name;   /* Populated automatically. */
enum lsm_type type; /* Optional: default is LSM_TYPE_EXCLUSIVE */
int (*init)(void);
 };
@@ -2052,10 +2053,13 @@ struct lsm_info {
 extern struct lsm_info __start_lsm_info[], __end_lsm_info[];
 
 #define DEFINE_LSM(lsm)
\
+   static const char __lsm_name_##lsm[] __initconst\
+   __aligned(1) = #lsm;\
static const struct lsm_info __lsm_##lsm\
__used __section(.lsm_info.init)\
__aligned(sizeof(unsigned long))\
= { \
+   .name = __lsm_name_##lsm,   \
 
 #define END_LSM  }
 
-- 
2.17.1