static int lrw_create(struct crypto_template *tmpl, struct rtattr **tb)
 {
        struct crypto_skcipher_spawn *spawn;
+       struct skcipher_alg_common *alg;
        struct skcipher_instance *inst;
-       struct skcipher_alg *alg;
        const char *cipher_name;
        char ecb_name[CRYPTO_MAX_ALG_NAME];
        u32 mask;
        if (err)
                goto err_free_inst;
 
-       alg = crypto_skcipher_spawn_alg(spawn);
+       alg = crypto_spawn_skcipher_alg_common(spawn);
 
        err = -EINVAL;
        if (alg->base.cra_blocksize != LRW_BLOCK_SIZE)
                goto err_free_inst;
 
-       if (crypto_skcipher_alg_ivsize(alg))
+       if (alg->ivsize)
                goto err_free_inst;
 
        err = crypto_inst_setname(skcipher_crypto_instance(inst), "lrw",
                                       (__alignof__(be128) - 1);
 
        inst->alg.ivsize = LRW_BLOCK_SIZE;
-       inst->alg.min_keysize = crypto_skcipher_alg_min_keysize(alg) +
-                               LRW_BLOCK_SIZE;
-       inst->alg.max_keysize = crypto_skcipher_alg_max_keysize(alg) +
-                               LRW_BLOCK_SIZE;
+       inst->alg.min_keysize = alg->min_keysize + LRW_BLOCK_SIZE;
+       inst->alg.max_keysize = alg->max_keysize + LRW_BLOCK_SIZE;
 
        inst->alg.base.cra_ctxsize = sizeof(struct lrw_tfm_ctx);