Lines Matching refs:lsm

97 static bool __init is_enabled(struct lsm_info *lsm)  in is_enabled()  argument
99 if (!lsm->enabled) in is_enabled()
102 return *lsm->enabled; in is_enabled()
108 static void __init set_enabled(struct lsm_info *lsm, bool enabled) in set_enabled() argument
114 if (!lsm->enabled) { in set_enabled()
116 lsm->enabled = &lsm_enabled_true; in set_enabled()
118 lsm->enabled = &lsm_enabled_false; in set_enabled()
119 } else if (lsm->enabled == &lsm_enabled_true) { in set_enabled()
121 lsm->enabled = &lsm_enabled_false; in set_enabled()
122 } else if (lsm->enabled == &lsm_enabled_false) { in set_enabled()
124 lsm->enabled = &lsm_enabled_true; in set_enabled()
126 *lsm->enabled = enabled; in set_enabled()
131 static bool __init exists_ordered_lsm(struct lsm_info *lsm) in exists_ordered_lsm() argument
136 if (*check == lsm) in exists_ordered_lsm()
144 static void __init append_ordered_lsm(struct lsm_info *lsm, const char *from) in append_ordered_lsm() argument
147 if (exists_ordered_lsm(lsm)) in append_ordered_lsm()
154 if (!lsm->enabled) in append_ordered_lsm()
155 lsm->enabled = &lsm_enabled_true; in append_ordered_lsm()
156 ordered_lsms[last_lsm++] = lsm; in append_ordered_lsm()
158 init_debug("%s ordering: %s (%sabled)\n", from, lsm->name, in append_ordered_lsm()
159 is_enabled(lsm) ? "en" : "dis"); in append_ordered_lsm()
163 static bool __init lsm_allowed(struct lsm_info *lsm) in lsm_allowed() argument
166 if (!is_enabled(lsm)) in lsm_allowed()
170 if ((lsm->flags & LSM_FLAG_EXCLUSIVE) && exclusive) { in lsm_allowed()
171 init_debug("exclusive disabled: %s\n", lsm->name); in lsm_allowed()
209 static void __init prepare_lsm(struct lsm_info *lsm) in prepare_lsm() argument
211 int enabled = lsm_allowed(lsm); in prepare_lsm()
214 set_enabled(lsm, enabled); in prepare_lsm()
218 if ((lsm->flags & LSM_FLAG_EXCLUSIVE) && !exclusive) { in prepare_lsm()
219 exclusive = lsm; in prepare_lsm()
220 init_debug("exclusive chosen: %s\n", lsm->name); in prepare_lsm()
223 lsm_set_blob_sizes(lsm->blobs); in prepare_lsm()
228 static void __init initialize_lsm(struct lsm_info *lsm) in initialize_lsm() argument
230 if (is_enabled(lsm)) { in initialize_lsm()
233 init_debug("initializing %s\n", lsm->name); in initialize_lsm()
234 ret = lsm->init(); in initialize_lsm()
235 WARN(ret, "%s failed to initialize: %d\n", lsm->name, ret); in initialize_lsm()
242 struct lsm_info *lsm; in ordered_lsm_parse() local
246 for (lsm = __start_lsm_info; lsm < __end_lsm_info; lsm++) { in ordered_lsm_parse()
247 if (lsm->order == LSM_ORDER_FIRST) in ordered_lsm_parse()
248 append_ordered_lsm(lsm, "first"); in ordered_lsm_parse()
278 for (lsm = __start_lsm_info; lsm < __end_lsm_info; lsm++) { in ordered_lsm_parse()
279 if (lsm->order == LSM_ORDER_MUTABLE && in ordered_lsm_parse()
280 strcmp(lsm->name, name) == 0) { in ordered_lsm_parse()
281 append_ordered_lsm(lsm, origin); in ordered_lsm_parse()
292 for (lsm = __start_lsm_info; lsm < __end_lsm_info; lsm++) { in ordered_lsm_parse()
293 if (exists_ordered_lsm(lsm)) in ordered_lsm_parse()
295 if (strcmp(lsm->name, chosen_major_lsm) == 0) in ordered_lsm_parse()
296 append_ordered_lsm(lsm, "security="); in ordered_lsm_parse()
301 for (lsm = __start_lsm_info; lsm < __end_lsm_info; lsm++) { in ordered_lsm_parse()
302 if (exists_ordered_lsm(lsm)) in ordered_lsm_parse()
304 set_enabled(lsm, false); in ordered_lsm_parse()
305 init_debug("%s disabled: %s\n", origin, lsm->name); in ordered_lsm_parse()
318 struct lsm_info **lsm; in ordered_lsm_init() local
332 for (lsm = ordered_lsms; *lsm; lsm++) in ordered_lsm_init()
333 prepare_lsm(*lsm); in ordered_lsm_init()
356 for (lsm = ordered_lsms; *lsm; lsm++) in ordered_lsm_init()
357 initialize_lsm(*lsm); in ordered_lsm_init()
366 struct lsm_info *lsm; in early_security_init() local
372 for (lsm = __start_early_lsm_info; lsm < __end_early_lsm_info; lsm++) { in early_security_init()
373 if (!lsm->enabled) in early_security_init()
374 lsm->enabled = &lsm_enabled_true; in early_security_init()
375 prepare_lsm(lsm); in early_security_init()
376 initialize_lsm(lsm); in early_security_init()
389 struct lsm_info *lsm; in security_init() local
397 for (lsm = __start_early_lsm_info; lsm < __end_early_lsm_info; lsm++) { in security_init()
398 if (lsm->enabled) in security_init()
399 lsm_append(lsm->name, &lsm_names); in security_init()
432 static bool match_last_lsm(const char *list, const char *lsm) in match_last_lsm() argument
436 if (WARN_ON(!list || !lsm)) in match_last_lsm()
444 return !strcmp(last, lsm); in match_last_lsm()
477 char *lsm) in security_add_hooks() argument
482 hooks[i].lsm = lsm; in security_add_hooks()
491 if (lsm_append(lsm, &lsm_names) < 0) in security_add_hooks()
1977 int security_getprocattr(struct task_struct *p, const char *lsm, char *name, in security_getprocattr() argument
1983 if (lsm != NULL && strcmp(lsm, hp->lsm)) in security_getprocattr()
1990 int security_setprocattr(const char *lsm, const char *name, void *value, in security_setprocattr() argument
1996 if (lsm != NULL && strcmp(lsm, hp->lsm)) in security_setprocattr()