ALSA: hda - Add missing mux check for VT1708
[pandora-kernel.git] / crypto / cryptd.c
index d14b226..ae5fa99 100644 (file)
@@ -586,20 +586,24 @@ struct cryptd_ablkcipher *cryptd_alloc_ablkcipher(const char *alg_name,
                                                  u32 type, u32 mask)
 {
        char cryptd_alg_name[CRYPTO_MAX_ALG_NAME];
-       struct crypto_ablkcipher *tfm;
+       struct crypto_tfm *tfm;
 
        if (snprintf(cryptd_alg_name, CRYPTO_MAX_ALG_NAME,
                     "cryptd(%s)", alg_name) >= CRYPTO_MAX_ALG_NAME)
                return ERR_PTR(-EINVAL);
-       tfm = crypto_alloc_ablkcipher(cryptd_alg_name, type, mask);
+       type &= ~(CRYPTO_ALG_TYPE_MASK | CRYPTO_ALG_GENIV);
+       type |= CRYPTO_ALG_TYPE_BLKCIPHER;
+       mask &= ~CRYPTO_ALG_TYPE_MASK;
+       mask |= (CRYPTO_ALG_GENIV | CRYPTO_ALG_TYPE_BLKCIPHER_MASK);
+       tfm = crypto_alloc_base(cryptd_alg_name, type, mask);
        if (IS_ERR(tfm))
                return ERR_CAST(tfm);
-       if (crypto_ablkcipher_tfm(tfm)->__crt_alg->cra_module != THIS_MODULE) {
-               crypto_free_ablkcipher(tfm);
+       if (tfm->__crt_alg->cra_module != THIS_MODULE) {
+               crypto_free_tfm(tfm);
                return ERR_PTR(-EINVAL);
        }
 
-       return __cryptd_ablkcipher_cast(tfm);
+       return __cryptd_ablkcipher_cast(__crypto_ablkcipher_cast(tfm));
 }
 EXPORT_SYMBOL_GPL(cryptd_alloc_ablkcipher);