]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - crypto/api.c
crypto: asymmetric_keys - set error code on failure
[karo-tx-linux.git] / crypto / api.c
index bbc147cb5dec87affad82510412459c075056f86..b16ce16532845759e79ea754b3672d1fad835193 100644 (file)
@@ -211,8 +211,8 @@ struct crypto_alg *crypto_larval_lookup(const char *name, u32 type, u32 mask)
        if (!name)
                return ERR_PTR(-ENOENT);
 
+       type &= ~(CRYPTO_ALG_LARVAL | CRYPTO_ALG_DEAD);
        mask &= ~(CRYPTO_ALG_LARVAL | CRYPTO_ALG_DEAD);
-       type &= mask;
 
        alg = crypto_alg_lookup(name, type, mask);
        if (!alg) {
@@ -310,24 +310,8 @@ static void crypto_exit_ops(struct crypto_tfm *tfm)
 {
        const struct crypto_type *type = tfm->__crt_alg->cra_type;
 
-       if (type) {
-               if (tfm->exit)
-                       tfm->exit(tfm);
-               return;
-       }
-
-       switch (crypto_tfm_alg_type(tfm)) {
-       case CRYPTO_ALG_TYPE_CIPHER:
-               crypto_exit_cipher_ops(tfm);
-               break;
-
-       case CRYPTO_ALG_TYPE_COMPRESS:
-               crypto_exit_compress_ops(tfm);
-               break;
-
-       default:
-               BUG();
-       }
+       if (type && tfm->exit)
+               tfm->exit(tfm);
 }
 
 static unsigned int crypto_ctxsize(struct crypto_alg *alg, u32 type, u32 mask)