const char *ctr_name,
                                    const char *ghash_name)
 {
+       struct skcipher_alg_common *ctr;
        u32 mask;
        struct aead_instance *inst;
        struct gcm_instance_ctx *ctx;
-       struct skcipher_alg *ctr;
        struct hash_alg_common *ghash;
        int err;
 
                                   ctr_name, 0, mask);
        if (err)
                goto err_free_inst;
-       ctr = crypto_spawn_skcipher_alg(&ctx->ctr);
+       ctr = crypto_spawn_skcipher_alg_common(&ctx->ctr);
 
        /* The skcipher algorithm must be CTR mode, using 16-byte blocks. */
        err = -EINVAL;
        if (strncmp(ctr->base.cra_name, "ctr(", 4) != 0 ||
-           crypto_skcipher_alg_ivsize(ctr) != 16 ||
-           ctr->base.cra_blocksize != 1)
+           ctr->ivsize != 16 || ctr->base.cra_blocksize != 1)
                goto err_free_inst;
 
        err = -ENAMETOOLONG;
                                       ctr->base.cra_alignmask;
        inst->alg.base.cra_ctxsize = sizeof(struct crypto_gcm_ctx);
        inst->alg.ivsize = GCM_AES_IV_SIZE;
-       inst->alg.chunksize = crypto_skcipher_alg_chunksize(ctr);
+       inst->alg.chunksize = ctr->chunksize;
        inst->alg.maxauthsize = 16;
        inst->alg.init = crypto_gcm_init_tfm;
        inst->alg.exit = crypto_gcm_exit_tfm;