Lines Matching defs:lsm
11 #include "lsm.h"
83 __setup("lsm=", lsm_choose_lsm);
97 __setup("lsm.debug", lsm_debug_enable);
101 * @lsm: LSM definition
104 static void __init lsm_enabled_set(struct lsm_info *lsm, bool enabled)
110 if (!lsm->enabled ||
111 lsm->enabled == &lsm_enabled_true ||
112 lsm->enabled == &lsm_enabled_false) {
113 lsm->enabled = enabled ? &lsm_enabled_true : &lsm_enabled_false;
115 *lsm->enabled = enabled;
121 * @lsm: LSM definition
123 static inline bool lsm_is_enabled(struct lsm_info *lsm)
125 return (lsm->enabled ? *lsm->enabled : false);
130 * @lsm: LSM definition
132 static bool __init lsm_order_exists(struct lsm_info *lsm)
137 if (*check == lsm)
146 * @lsm: LSM definition
149 * Append @lsm to the enabled LSM array after ensuring that it hasn't been
153 static void __init lsm_order_append(struct lsm_info *lsm, const char *src)
156 if (lsm_order_exists(lsm))
160 if (lsm->enabled && !lsm_is_enabled(lsm)) {
162 src, lsm->id->name);
168 src, lsm->id->name);
169 lsm_enabled_set(lsm, false);
173 if (lsm->flags & LSM_FLAG_EXCLUSIVE) {
176 src, lsm->id->name);
177 lsm_enabled_set(lsm, false);
181 src, lsm->id->name);
182 lsm_exclusive = lsm;
186 lsm_enabled_set(lsm, true);
187 lsm_order[lsm_active_cnt] = lsm;
188 lsm_idlist[lsm_active_cnt++] = lsm->id;
190 lsm_pr_dbg("enabling LSM %s:%s\n", src, lsm->id->name);
200 struct lsm_info *lsm;
211 lsm_for_each_raw(lsm) {
212 if ((lsm->flags & LSM_FLAG_LEGACY_MAJOR) &&
213 strcmp(lsm->id->name, lsm_order_legacy)) {
214 lsm_enabled_set(lsm, false);
216 src, lsm->id->name);
222 lsm_for_each_raw(lsm) {
223 if (lsm->order == LSM_ORDER_FIRST)
224 lsm_order_append(lsm, "first");
232 lsm_for_each_raw(lsm) {
233 if (!strcmp(lsm->id->name, name) &&
234 lsm->order == LSM_ORDER_MUTABLE)
235 lsm_order_append(lsm, src);
242 lsm_for_each_raw(lsm) {
243 if (!strcmp(lsm->id->name, lsm_order_legacy))
244 lsm_order_append(lsm, src);
249 lsm_for_each_raw(lsm) {
250 if (lsm->order == LSM_ORDER_LAST)
251 lsm_order_append(lsm, "last");
255 lsm_for_each_raw(lsm) {
256 if (lsm_order_exists(lsm))
258 lsm_enabled_set(lsm, false);
259 lsm_pr_dbg("skip disabled LSM %s:%s\n", src, lsm->id->name);
283 * @lsm: LSM definition
285 static void __init lsm_prepare(struct lsm_info *lsm)
287 struct lsm_blob_sizes *blobs = lsm->blobs;
293 blobs = lsm->blobs;
323 * @lsm: LSM definition
325 static void __init lsm_init_single(struct lsm_info *lsm)
329 if (!lsm_is_enabled(lsm))
332 lsm_pr_dbg("initializing %s\n", lsm->id->name);
333 ret = lsm->init();
334 WARN(ret, "%s failed to initialize: %d\n", lsm->id->name, ret);
387 struct lsm_info *lsm;
391 lsm_early_for_each_raw(lsm) {
392 lsm_enabled_set(lsm, true);
393 lsm_order_append(lsm, "early");
394 lsm_prepare(lsm);
395 lsm_init_single(lsm);
410 struct lsm_info **lsm;
440 lsm_order_for_each(lsm)
441 lsm_prepare(*lsm);
486 lsm_order_for_each(lsm) {
490 lsm_init_single(*lsm);