IMA: Add __init notation to ima functions
Eric Paris [Thu, 21 May 2009 19:43:32 +0000 (15:43 -0400)]
A number of IMA functions only used during init are not marked with __init.
Add those notations so they are freed automatically.

Signed-off-by: Eric Paris <eparis@redhat.com>
Acked-by: Mimi Zohar <zohar@us.ibm.com>
Signed-off-by: James Morris <jmorris@namei.org>

security/integrity/ima/ima_crypto.c
security/integrity/ima/ima_fs.c
security/integrity/ima/ima_iint.c
security/integrity/ima/ima_init.c
security/integrity/ima/ima_policy.c

index 50d572b..63003a6 100644 (file)
@@ -103,7 +103,7 @@ int ima_calc_template_hash(int template_len, void *template, char *digest)
        return rc;
 }
 
-static void ima_pcrread(int idx, u8 *pcr)
+static void __init ima_pcrread(int idx, u8 *pcr)
 {
        if (!ima_used_chip)
                return;
@@ -115,7 +115,7 @@ static void ima_pcrread(int idx, u8 *pcr)
 /*
  * Calculate the boot aggregate hash
  */
-int ima_calc_boot_aggregate(char *digest)
+int __init ima_calc_boot_aggregate(char *digest)
 {
        struct hash_desc desc;
        struct scatterlist sg;
index 3305a96..7039b14 100644 (file)
@@ -319,7 +319,7 @@ static struct file_operations ima_measure_policy_ops = {
        .release = ima_release_policy
 };
 
-int ima_fs_init(void)
+int __init ima_fs_init(void)
 {
        ima_dir = securityfs_create_dir("ima", NULL);
        if (IS_ERR(ima_dir))
index ec79f1e..b8dd693 100644 (file)
@@ -196,7 +196,7 @@ static void init_once(void *foo)
        kref_set(&iint->refcount, 1);
 }
 
-void ima_iintcache_init(void)
+void __init ima_iintcache_init(void)
 {
        iint_cache =
            kmem_cache_create("iint_cache", sizeof(struct ima_iint_cache), 0,
index 0b0bb8c..a40da7a 100644 (file)
@@ -38,7 +38,7 @@ int ima_used_chip;
  * a different value.) Violations add a zero entry to the measurement
  * list and extend the aggregate PCR value with ff...ff's.
  */
-static void ima_add_boot_aggregate(void)
+static void __init ima_add_boot_aggregate(void)
 {
        struct ima_template_entry *entry;
        const char *op = "add_boot_aggregate";
@@ -71,7 +71,7 @@ err_out:
                            audit_cause, result, 0);
 }
 
-int ima_init(void)
+int __init ima_init(void)
 {
        u8 pcr_i[IMA_DIGEST_SIZE];
        int rc;
index 4719bbf..e127839 100644 (file)
@@ -178,7 +178,7 @@ int ima_match_policy(struct inode *inode, enum ima_hooks func, int mask)
  * ima_measure points to either the measure_default_rules or the
  * the new measure_policy_rules.
  */
-void ima_init_policy(void)
+void __init ima_init_policy(void)
 {
        int i, entries;