]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
apparmor: move initcalls to the LSM framework
authorPaul Moore <paul@paul-moore.com>
Tue, 18 Feb 2025 22:23:40 +0000 (17:23 -0500)
committerPaul Moore <paul@paul-moore.com>
Wed, 22 Oct 2025 23:24:27 +0000 (19:24 -0400)
Reviewed-by: Kees Cook <kees@kernel.org>
Acked-by: John Johansen <john.johansen@canonical.com>
Signed-off-by: Paul Moore <paul@paul-moore.com>
security/apparmor/apparmorfs.c
security/apparmor/crypto.c
security/apparmor/include/apparmorfs.h
security/apparmor/include/crypto.h
security/apparmor/lsm.c

index 391a586d0557f04b8ebe7e6175ceb71717a4ccdd..ee04c1ac9d6ebac74c9c346426a881e6e00387ba 100644 (file)
@@ -2649,7 +2649,7 @@ static const struct inode_operations policy_link_iops = {
  *
  * Returns: error on failure
  */
-static int __init aa_create_aafs(void)
+int __init aa_create_aafs(void)
 {
        struct dentry *dent;
        int error;
@@ -2728,5 +2728,3 @@ error:
        AA_ERROR("Error creating AppArmor securityfs\n");
        return error;
 }
-
-fs_initcall(aa_create_aafs);
index 227d47c14907410b6374a0016669fcc9cc6254be..d8a7bde94d7923f8f9188a0189067afd00f1fa82 100644 (file)
@@ -53,10 +53,9 @@ int aa_calc_profile_hash(struct aa_profile *profile, u32 version, void *start,
        return 0;
 }
 
-static int __init init_profile_hash(void)
+int __init init_profile_hash(void)
 {
        if (apparmor_initialized)
                aa_info_message("AppArmor sha256 policy hashing enabled");
        return 0;
 }
-late_initcall(init_profile_hash);
index 1e94904f68d9057858e1fa8f93835ff6cbfce5d2..dd580594dfb70a64f4f7f0110305d13c58ea1034 100644 (file)
@@ -104,6 +104,8 @@ enum aafs_prof_type {
 #define prof_dir(X) ((X)->dents[AAFS_PROF_DIR])
 #define prof_child_dir(X) ((X)->dents[AAFS_PROF_PROFS])
 
+int aa_create_aafs(void);
+
 void __aa_bump_ns_revision(struct aa_ns *ns);
 void __aafs_profile_rmdir(struct aa_profile *profile);
 void __aafs_profile_migrate_dents(struct aa_profile *old,
index 636a04e20d9184fc19ff672de5eb40936b7f9e82..f3ffd388cc58a4d1e39c061a1589881de09555ed 100644 (file)
@@ -13,6 +13,7 @@
 #include "policy.h"
 
 #ifdef CONFIG_SECURITY_APPARMOR_HASH
+int init_profile_hash(void);
 unsigned int aa_hash_size(void);
 char *aa_calc_hash(void *data, size_t len);
 int aa_calc_profile_hash(struct aa_profile *profile, u32 version, void *start,
index f6798144234b782cf1863425ba54025014bfe8d1..a87cd60ed2069905922a93b4100858ae2afa46a7 100644 (file)
@@ -32,6 +32,7 @@
 #include "include/audit.h"
 #include "include/capability.h"
 #include "include/cred.h"
+#include "include/crypto.h"
 #include "include/file.h"
 #include "include/ipc.h"
 #include "include/net.h"
@@ -2426,7 +2427,6 @@ static int __init apparmor_nf_ip_init(void)
 
        return 0;
 }
-__initcall(apparmor_nf_ip_init);
 #endif
 
 static char nulldfa_src[] __aligned(8) = {
@@ -2560,4 +2560,11 @@ DEFINE_LSM(apparmor) = {
        .enabled = &apparmor_enabled,
        .blobs = &apparmor_blob_sizes,
        .init = apparmor_init,
+       .initcall_fs = aa_create_aafs,
+#if defined(CONFIG_NETFILTER) && defined(CONFIG_NETWORK_SECMARK)
+       .initcall_device = apparmor_nf_ip_init,
+#endif
+#ifdef CONFIG_SECURITY_APPARMOR_HASH
+       .initcall_late = init_profile_hash,
+#endif
 };