Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux
[sfrench/cifs-2.6.git] / crypto / xts.c
index ab117633d64e775520a6ab542282e4a839a8a714..29efa15f149548b0e757f477b0af6544ce6bc330 100644 (file)
@@ -61,8 +61,6 @@ static int setkey(struct crypto_skcipher *parent, const u8 *key,
        crypto_cipher_set_flags(tweak, crypto_skcipher_get_flags(parent) &
                                       CRYPTO_TFM_REQ_MASK);
        err = crypto_cipher_setkey(tweak, key + keylen, keylen);
-       crypto_skcipher_set_flags(parent, crypto_cipher_get_flags(tweak) &
-                                         CRYPTO_TFM_RES_MASK);
        if (err)
                return err;
 
@@ -71,11 +69,7 @@ static int setkey(struct crypto_skcipher *parent, const u8 *key,
        crypto_skcipher_clear_flags(child, CRYPTO_TFM_REQ_MASK);
        crypto_skcipher_set_flags(child, crypto_skcipher_get_flags(parent) &
                                         CRYPTO_TFM_REQ_MASK);
-       err = crypto_skcipher_setkey(child, key, keylen);
-       crypto_skcipher_set_flags(parent, crypto_skcipher_get_flags(child) &
-                                         CRYPTO_TFM_RES_MASK);
-
-       return err;
+       return crypto_skcipher_setkey(child, key, keylen);
 }
 
 /*
@@ -361,20 +355,21 @@ static int create(struct crypto_template *tmpl, struct rtattr **tb)
 
        ctx = skcipher_instance_ctx(inst);
 
-       crypto_set_skcipher_spawn(&ctx->spawn, skcipher_crypto_instance(inst));
-
        mask = crypto_requires_off(algt->type, algt->mask,
                                   CRYPTO_ALG_NEED_FALLBACK |
                                   CRYPTO_ALG_ASYNC);
 
-       err = crypto_grab_skcipher(&ctx->spawn, cipher_name, 0, mask);
+       err = crypto_grab_skcipher(&ctx->spawn, skcipher_crypto_instance(inst),
+                                  cipher_name, 0, mask);
        if (err == -ENOENT) {
                err = -ENAMETOOLONG;
                if (snprintf(ctx->name, CRYPTO_MAX_ALG_NAME, "ecb(%s)",
                             cipher_name) >= CRYPTO_MAX_ALG_NAME)
                        goto err_free_inst;
 
-               err = crypto_grab_skcipher(&ctx->spawn, ctx->name, 0, mask);
+               err = crypto_grab_skcipher(&ctx->spawn,
+                                          skcipher_crypto_instance(inst),
+                                          ctx->name, 0, mask);
        }
 
        if (err)