diff options
-rw-r--r-- | init/main.c | 2 | ||||
-rw-r--r-- | security/integrity/ima/ima.h | 1 | ||||
-rw-r--r-- | security/integrity/ima/ima_iint.c | 9 | ||||
-rw-r--r-- | security/integrity/ima/ima_main.c | 1 |
4 files changed, 4 insertions, 9 deletions
diff --git a/init/main.c b/init/main.c index dac44a9356a5..4cb47a159f02 100644 --- a/init/main.c +++ b/init/main.c | |||
@@ -657,9 +657,9 @@ asmlinkage void __init start_kernel(void) | |||
657 | proc_caches_init(); | 657 | proc_caches_init(); |
658 | buffer_init(); | 658 | buffer_init(); |
659 | key_init(); | 659 | key_init(); |
660 | radix_tree_init(); | ||
660 | security_init(); | 661 | security_init(); |
661 | vfs_caches_init(totalram_pages); | 662 | vfs_caches_init(totalram_pages); |
662 | radix_tree_init(); | ||
663 | signals_init(); | 663 | signals_init(); |
664 | /* rootfs populating might need page-writeback */ | 664 | /* rootfs populating might need page-writeback */ |
665 | page_writeback_init(); | 665 | page_writeback_init(); |
diff --git a/security/integrity/ima/ima.h b/security/integrity/ima/ima.h index c41afe6639a0..aa25a7eb2d0e 100644 --- a/security/integrity/ima/ima.h +++ b/security/integrity/ima/ima.h | |||
@@ -65,7 +65,6 @@ void integrity_audit_msg(int audit_msgno, struct inode *inode, | |||
65 | const char *cause, int result, int info); | 65 | const char *cause, int result, int info); |
66 | 66 | ||
67 | /* Internal IMA function definitions */ | 67 | /* Internal IMA function definitions */ |
68 | void ima_iintcache_init(void); | ||
69 | int ima_init(void); | 68 | int ima_init(void); |
70 | void ima_cleanup(void); | 69 | void ima_cleanup(void); |
71 | int ima_fs_init(void); | 70 | int ima_fs_init(void); |
diff --git a/security/integrity/ima/ima_iint.c b/security/integrity/ima/ima_iint.c index fa592ff1ac1c..0d83edcfc402 100644 --- a/security/integrity/ima/ima_iint.c +++ b/security/integrity/ima/ima_iint.c | |||
@@ -52,9 +52,6 @@ int ima_inode_alloc(struct inode *inode) | |||
52 | struct ima_iint_cache *iint = NULL; | 52 | struct ima_iint_cache *iint = NULL; |
53 | int rc = 0; | 53 | int rc = 0; |
54 | 54 | ||
55 | if (!ima_initialized) | ||
56 | return 0; | ||
57 | |||
58 | iint = kmem_cache_alloc(iint_cache, GFP_NOFS); | 55 | iint = kmem_cache_alloc(iint_cache, GFP_NOFS); |
59 | if (!iint) | 56 | if (!iint) |
60 | return -ENOMEM; | 57 | return -ENOMEM; |
@@ -118,8 +115,6 @@ void ima_inode_free(struct inode *inode) | |||
118 | { | 115 | { |
119 | struct ima_iint_cache *iint; | 116 | struct ima_iint_cache *iint; |
120 | 117 | ||
121 | if (!ima_initialized) | ||
122 | return; | ||
123 | spin_lock(&ima_iint_lock); | 118 | spin_lock(&ima_iint_lock); |
124 | iint = radix_tree_delete(&ima_iint_store, (unsigned long)inode); | 119 | iint = radix_tree_delete(&ima_iint_store, (unsigned long)inode); |
125 | spin_unlock(&ima_iint_lock); | 120 | spin_unlock(&ima_iint_lock); |
@@ -141,9 +136,11 @@ static void init_once(void *foo) | |||
141 | kref_set(&iint->refcount, 1); | 136 | kref_set(&iint->refcount, 1); |
142 | } | 137 | } |
143 | 138 | ||
144 | void __init ima_iintcache_init(void) | 139 | static int __init ima_iintcache_init(void) |
145 | { | 140 | { |
146 | iint_cache = | 141 | iint_cache = |
147 | kmem_cache_create("iint_cache", sizeof(struct ima_iint_cache), 0, | 142 | kmem_cache_create("iint_cache", sizeof(struct ima_iint_cache), 0, |
148 | SLAB_PANIC, init_once); | 143 | SLAB_PANIC, init_once); |
144 | return 0; | ||
149 | } | 145 | } |
146 | security_initcall(ima_iintcache_init); | ||
diff --git a/security/integrity/ima/ima_main.c b/security/integrity/ima/ima_main.c index 75aee18f6163..eb1cf6498cc9 100644 --- a/security/integrity/ima/ima_main.c +++ b/security/integrity/ima/ima_main.c | |||
@@ -321,7 +321,6 @@ static int __init init_ima(void) | |||
321 | { | 321 | { |
322 | int error; | 322 | int error; |
323 | 323 | ||
324 | ima_iintcache_init(); | ||
325 | error = ima_init(); | 324 | error = ima_init(); |
326 | ima_initialized = 1; | 325 | ima_initialized = 1; |
327 | return error; | 326 | return error; |