ima: move keyring initialization to ima_init()
authorDmitry Kasatkin <d.kasatkin@samsung.com>
Fri, 27 Jun 2014 10:01:32 +0000 (13:01 +0300)
committerMimi Zohar <zohar@linux.vnet.ibm.com>
Wed, 17 Sep 2014 20:10:59 +0000 (16:10 -0400)
ima_init() is used as a single place for all initializations.
Experimental keyring patches used the 'late_initcall' which was
co-located with the late_initcall(init_ima). When the late_initcall
for the keyring initialization was abandoned, initialization moved
to init_ima, though it would be more logical to move it to ima_init,
where the rest of the initialization is done. This patch moves the
keyring initialization to ima_init() as a preparatory step for
loading the keys which will be added to ima_init() in following
patches.

Signed-off-by: Dmitry Kasatkin <d.kasatkin@samsung.com>
Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com>
security/integrity/ima/ima_init.c
security/integrity/ima/ima_main.c

index e8f9d70..8cf0f39 100644 (file)
@@ -98,6 +98,10 @@ int __init ima_init(void)
        if (!ima_used_chip)
                pr_info("No TPM chip found, activating TPM-bypass!\n");
 
+       rc = ima_init_keyring(INTEGRITY_KEYRING_IMA);
+       if (rc)
+               return rc;
+
        rc = ima_init_crypto();
        if (rc)
                return rc;
index 673a37e..ed7d9fa 100644 (file)
@@ -334,14 +334,8 @@ static int __init init_ima(void)
 
        hash_setup(CONFIG_IMA_DEFAULT_HASH);
        error = ima_init();
-       if (error)
-               goto out;
-
-       error = ima_init_keyring(INTEGRITY_KEYRING_IMA);
-       if (error)
-               goto out;
-       ima_initialized = 1;
-out:
+       if (!error)
+               ima_initialized = 1;
        return error;
 }