crypto: api - Use data directly in completion function
authorHerbert Xu <herbert@gondor.apana.org.au>
Wed, 8 Feb 2023 05:58:44 +0000 (13:58 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Mon, 13 Feb 2023 10:35:14 +0000 (18:35 +0800)
This patch does the final flag day conversion of all completion
functions which are now all contained in the Crypto API.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
23 files changed:
crypto/adiantum.c
crypto/af_alg.c
crypto/ahash.c
crypto/api.c
crypto/authenc.c
crypto/authencesn.c
crypto/ccm.c
crypto/chacha20poly1305.c
crypto/cryptd.c
crypto/cts.c
crypto/dh.c
crypto/essiv.c
crypto/gcm.c
crypto/hctr2.c
crypto/lrw.c
crypto/pcrypt.c
crypto/rsa-pkcs1pad.c
crypto/seqiv.c
crypto/xts.c
drivers/crypto/atmel-sha.c
include/crypto/algapi.h
include/crypto/if_alg.h
include/linux/crypto.h

index 84450130cb6b382da9b42446004f49bbb0c15de1..c33ba22a66389cfdf06878d0bf288935ae5746c3 100644 (file)
@@ -308,10 +308,9 @@ static int adiantum_finish(struct skcipher_request *req)
        return 0;
 }
 
-static void adiantum_streamcipher_done(struct crypto_async_request *areq,
-                                      int err)
+static void adiantum_streamcipher_done(void *data, int err)
 {
-       struct skcipher_request *req = areq->data;
+       struct skcipher_request *req = data;
 
        if (!err)
                err = adiantum_finish(req);
index 0a4fa2a429e22a60d9fc3845ba2d21b29c0fcb60..5f7252a5b7b44af2915913ef9ac35fddb369b3d5 100644 (file)
@@ -1186,7 +1186,7 @@ EXPORT_SYMBOL_GPL(af_alg_free_resources);
 
 /**
  * af_alg_async_cb - AIO callback handler
- * @_req: async request info
+ * @data: async request completion data
  * @err: if non-zero, error result to be returned via ki_complete();
  *       otherwise return the AIO output length via ki_complete().
  *
@@ -1196,9 +1196,9 @@ EXPORT_SYMBOL_GPL(af_alg_free_resources);
  * The number of bytes to be generated with the AIO operation must be set
  * in areq->outlen before the AIO callback handler is invoked.
  */
-void af_alg_async_cb(struct crypto_async_request *_req, int err)
+void af_alg_async_cb(void *data, int err)
 {
-       struct af_alg_async_req *areq = _req->data;
+       struct af_alg_async_req *areq = data;
        struct sock *sk = areq->sk;
        struct kiocb *iocb = areq->iocb;
        unsigned int resultlen;
index 19241b18a4d16dd93a839067189aafb5401dcd8a..ff8c79d975c1dd7d140f62c1d261282f099a9509 100644 (file)
@@ -256,9 +256,9 @@ static void ahash_restore_req(struct ahash_request *req, int err)
        kfree_sensitive(subreq);
 }
 
-static void ahash_op_unaligned_done(struct crypto_async_request *req, int err)
+static void ahash_op_unaligned_done(void *data, int err)
 {
-       struct ahash_request *areq = req->data;
+       struct ahash_request *areq = data;
 
        if (err == -EINPROGRESS)
                goto out;
@@ -348,9 +348,9 @@ int crypto_ahash_digest(struct ahash_request *req)
 }
 EXPORT_SYMBOL_GPL(crypto_ahash_digest);
 
-static void ahash_def_finup_done2(struct crypto_async_request *req, int err)
+static void ahash_def_finup_done2(void *data, int err)
 {
-       struct ahash_request *areq = req->data;
+       struct ahash_request *areq = data;
 
        if (err == -EINPROGRESS)
                return;
@@ -378,9 +378,9 @@ out:
        return err;
 }
 
-static void ahash_def_finup_done1(struct crypto_async_request *req, int err)
+static void ahash_def_finup_done1(void *data, int err)
 {
-       struct ahash_request *areq = req->data;
+       struct ahash_request *areq = data;
        struct ahash_request *subreq;
 
        if (err == -EINPROGRESS)
index b022702f643672ea6ad2873bb1b95b5bc828ade2..e67cc63368ed8bb3a18382068c3beff2deef34c2 100644 (file)
@@ -643,9 +643,9 @@ int crypto_has_alg(const char *name, u32 type, u32 mask)
 }
 EXPORT_SYMBOL_GPL(crypto_has_alg);
 
-void crypto_req_done(struct crypto_async_request *req, int err)
+void crypto_req_done(void *data, int err)
 {
-       struct crypto_wait *wait = req->data;
+       struct crypto_wait *wait = data;
 
        if (err == -EINPROGRESS)
                return;
index 17f674a7cdff5434a213f66f66ca5c6976b565de..3326c7343e8673b6adc6d22292c67aecfa1d55c6 100644 (file)
@@ -109,9 +109,9 @@ out:
        return err;
 }
 
-static void authenc_geniv_ahash_done(struct crypto_async_request *areq, int err)
+static void authenc_geniv_ahash_done(void *data, int err)
 {
-       struct aead_request *req = areq->data;
+       struct aead_request *req = data;
        struct crypto_aead *authenc = crypto_aead_reqtfm(req);
        struct aead_instance *inst = aead_alg_instance(authenc);
        struct authenc_instance_ctx *ictx = aead_instance_ctx(inst);
@@ -160,10 +160,9 @@ static int crypto_authenc_genicv(struct aead_request *req, unsigned int flags)
        return 0;
 }
 
-static void crypto_authenc_encrypt_done(struct crypto_async_request *req,
-                                       int err)
+static void crypto_authenc_encrypt_done(void *data, int err)
 {
-       struct aead_request *areq = req->data;
+       struct aead_request *areq = data;
 
        if (err)
                goto out;
@@ -261,10 +260,9 @@ static int crypto_authenc_decrypt_tail(struct aead_request *req,
        return crypto_skcipher_decrypt(skreq);
 }
 
-static void authenc_verify_ahash_done(struct crypto_async_request *areq,
-                                     int err)
+static void authenc_verify_ahash_done(void *data, int err)
 {
-       struct aead_request *req = areq->data;
+       struct aead_request *req = data;
 
        if (err)
                goto out;
index b60e61b1904cb1f91bacc4902c2a0d976ed4107d..91424e791d5c77ccc9105bcc3fa54e8d4f92fa4c 100644 (file)
@@ -107,10 +107,9 @@ static int crypto_authenc_esn_genicv_tail(struct aead_request *req,
        return 0;
 }
 
-static void authenc_esn_geniv_ahash_done(struct crypto_async_request *areq,
-                                        int err)
+static void authenc_esn_geniv_ahash_done(void *data, int err)
 {
-       struct aead_request *req = areq->data;
+       struct aead_request *req = data;
 
        err = err ?: crypto_authenc_esn_genicv_tail(req, 0);
        aead_request_complete(req, err);
@@ -153,10 +152,9 @@ static int crypto_authenc_esn_genicv(struct aead_request *req,
 }
 
 
-static void crypto_authenc_esn_encrypt_done(struct crypto_async_request *req,
-                                           int err)
+static void crypto_authenc_esn_encrypt_done(void *data, int err)
 {
-       struct aead_request *areq = req->data;
+       struct aead_request *areq = data;
 
        if (!err)
                err = crypto_authenc_esn_genicv(areq, 0);
@@ -258,10 +256,9 @@ decrypt:
        return crypto_skcipher_decrypt(skreq);
 }
 
-static void authenc_esn_verify_ahash_done(struct crypto_async_request *areq,
-                                         int err)
+static void authenc_esn_verify_ahash_done(void *data, int err)
 {
-       struct aead_request *req = areq->data;
+       struct aead_request *req = data;
 
        err = err ?: crypto_authenc_esn_decrypt_tail(req, 0);
        authenc_esn_request_complete(req, err);
index 30dbae72728f73d4eaab3778cb02aceff260df20..a9453129c51cb7d1de295caf1cf61bdab13cb126 100644 (file)
@@ -224,9 +224,9 @@ out:
        return err;
 }
 
-static void crypto_ccm_encrypt_done(struct crypto_async_request *areq, int err)
+static void crypto_ccm_encrypt_done(void *data, int err)
 {
-       struct aead_request *req = areq->data;
+       struct aead_request *req = data;
        struct crypto_aead *aead = crypto_aead_reqtfm(req);
        struct crypto_ccm_req_priv_ctx *pctx = crypto_ccm_reqctx(req);
        u8 *odata = pctx->odata;
@@ -320,10 +320,9 @@ static int crypto_ccm_encrypt(struct aead_request *req)
        return err;
 }
 
-static void crypto_ccm_decrypt_done(struct crypto_async_request *areq,
-                                  int err)
+static void crypto_ccm_decrypt_done(void *data, int err)
 {
-       struct aead_request *req = areq->data;
+       struct aead_request *req = data;
        struct crypto_ccm_req_priv_ctx *pctx = crypto_ccm_reqctx(req);
        struct crypto_aead *aead = crypto_aead_reqtfm(req);
        unsigned int authsize = crypto_aead_authsize(aead);
index 97bbb135e9a6d9a28c671ccf6434aa730ec6465b..3a905c5d8f53511776e0885ce8297851356ee471 100644 (file)
@@ -115,9 +115,9 @@ static int poly_copy_tag(struct aead_request *req)
        return 0;
 }
 
-static void chacha_decrypt_done(struct crypto_async_request *areq, int err)
+static void chacha_decrypt_done(void *data, int err)
 {
-       async_done_continue(areq->data, err, poly_verify_tag);
+       async_done_continue(data, err, poly_verify_tag);
 }
 
 static int chacha_decrypt(struct aead_request *req)
@@ -161,9 +161,9 @@ static int poly_tail_continue(struct aead_request *req)
        return chacha_decrypt(req);
 }
 
-static void poly_tail_done(struct crypto_async_request *areq, int err)
+static void poly_tail_done(void *data, int err)
 {
-       async_done_continue(areq->data, err, poly_tail_continue);
+       async_done_continue(data, err, poly_tail_continue);
 }
 
 static int poly_tail(struct aead_request *req)
@@ -191,9 +191,9 @@ static int poly_tail(struct aead_request *req)
        return poly_tail_continue(req);
 }
 
-static void poly_cipherpad_done(struct crypto_async_request *areq, int err)
+static void poly_cipherpad_done(void *data, int err)
 {
-       async_done_continue(areq->data, err, poly_tail);
+       async_done_continue(data, err, poly_tail);
 }
 
 static int poly_cipherpad(struct aead_request *req)
@@ -220,9 +220,9 @@ static int poly_cipherpad(struct aead_request *req)
        return poly_tail(req);
 }
 
-static void poly_cipher_done(struct crypto_async_request *areq, int err)
+static void poly_cipher_done(void *data, int err)
 {
-       async_done_continue(areq->data, err, poly_cipherpad);
+       async_done_continue(data, err, poly_cipherpad);
 }
 
 static int poly_cipher(struct aead_request *req)
@@ -250,9 +250,9 @@ static int poly_cipher(struct aead_request *req)
        return poly_cipherpad(req);
 }
 
-static void poly_adpad_done(struct crypto_async_request *areq, int err)
+static void poly_adpad_done(void *data, int err)
 {
-       async_done_continue(areq->data, err, poly_cipher);
+       async_done_continue(data, err, poly_cipher);
 }
 
 static int poly_adpad(struct aead_request *req)
@@ -279,9 +279,9 @@ static int poly_adpad(struct aead_request *req)
        return poly_cipher(req);
 }
 
-static void poly_ad_done(struct crypto_async_request *areq, int err)
+static void poly_ad_done(void *data, int err)
 {
-       async_done_continue(areq->data, err, poly_adpad);
+       async_done_continue(data, err, poly_adpad);
 }
 
 static int poly_ad(struct aead_request *req)
@@ -303,9 +303,9 @@ static int poly_ad(struct aead_request *req)
        return poly_adpad(req);
 }
 
-static void poly_setkey_done(struct crypto_async_request *areq, int err)
+static void poly_setkey_done(void *data, int err)
 {
-       async_done_continue(areq->data, err, poly_ad);
+       async_done_continue(data, err, poly_ad);
 }
 
 static int poly_setkey(struct aead_request *req)
@@ -329,9 +329,9 @@ static int poly_setkey(struct aead_request *req)
        return poly_ad(req);
 }
 
-static void poly_init_done(struct crypto_async_request *areq, int err)
+static void poly_init_done(void *data, int err)
 {
-       async_done_continue(areq->data, err, poly_setkey);
+       async_done_continue(data, err, poly_setkey);
 }
 
 static int poly_init(struct aead_request *req)
@@ -352,9 +352,9 @@ static int poly_init(struct aead_request *req)
        return poly_setkey(req);
 }
 
-static void poly_genkey_done(struct crypto_async_request *areq, int err)
+static void poly_genkey_done(void *data, int err)
 {
-       async_done_continue(areq->data, err, poly_init);
+       async_done_continue(data, err, poly_init);
 }
 
 static int poly_genkey(struct aead_request *req)
@@ -391,9 +391,9 @@ static int poly_genkey(struct aead_request *req)
        return poly_init(req);
 }
 
-static void chacha_encrypt_done(struct crypto_async_request *areq, int err)
+static void chacha_encrypt_done(void *data, int err)
 {
-       async_done_continue(areq->data, err, poly_genkey);
+       async_done_continue(data, err, poly_genkey);
 }
 
 static int chacha_encrypt(struct aead_request *req)
index 29890fc0eab7b7b09e77d05da351bbcfac3bdc87..37365ed30b382a7c5abf044ff890a46f86864886 100644 (file)
@@ -285,10 +285,9 @@ static void cryptd_skcipher_complete(struct skcipher_request *req, int err,
                crypto_free_skcipher(tfm);
 }
 
-static void cryptd_skcipher_encrypt(struct crypto_async_request *base,
-                                   int err)
+static void cryptd_skcipher_encrypt(void *data, int err)
 {
-       struct skcipher_request *req = skcipher_request_cast(base);
+       struct skcipher_request *req = data;
        struct skcipher_request *subreq;
 
        subreq = cryptd_skcipher_prepare(req, err);
@@ -298,10 +297,9 @@ static void cryptd_skcipher_encrypt(struct crypto_async_request *base,
        cryptd_skcipher_complete(req, err, cryptd_skcipher_encrypt);
 }
 
-static void cryptd_skcipher_decrypt(struct crypto_async_request *base,
-                                   int err)
+static void cryptd_skcipher_decrypt(void *data, int err)
 {
-       struct skcipher_request *req = skcipher_request_cast(base);
+       struct skcipher_request *req = data;
        struct skcipher_request *subreq;
 
        subreq = cryptd_skcipher_prepare(req, err);
@@ -515,9 +513,9 @@ static void cryptd_hash_complete(struct ahash_request *req, int err,
                crypto_free_ahash(tfm);
 }
 
-static void cryptd_hash_init(struct crypto_async_request *req_async, int err)
+static void cryptd_hash_init(void *data, int err)
 {
-       struct ahash_request *req = ahash_request_cast(req_async);
+       struct ahash_request *req = data;
        struct crypto_ahash *tfm = crypto_ahash_reqtfm(req);
        struct cryptd_hash_ctx *ctx = crypto_ahash_ctx(tfm);
        struct crypto_shash *child = ctx->child;
@@ -540,9 +538,9 @@ static int cryptd_hash_init_enqueue(struct ahash_request *req)
        return cryptd_hash_enqueue(req, cryptd_hash_init);
 }
 
-static void cryptd_hash_update(struct crypto_async_request *req_async, int err)
+static void cryptd_hash_update(void *data, int err)
 {
-       struct ahash_request *req = ahash_request_cast(req_async);
+       struct ahash_request *req = data;
        struct shash_desc *desc;
 
        desc = cryptd_hash_prepare(req, err);
@@ -557,9 +555,9 @@ static int cryptd_hash_update_enqueue(struct ahash_request *req)
        return cryptd_hash_enqueue(req, cryptd_hash_update);
 }
 
-static void cryptd_hash_final(struct crypto_async_request *req_async, int err)
+static void cryptd_hash_final(void *data, int err)
 {
-       struct ahash_request *req = ahash_request_cast(req_async);
+       struct ahash_request *req = data;
        struct shash_desc *desc;
 
        desc = cryptd_hash_prepare(req, err);
@@ -574,9 +572,9 @@ static int cryptd_hash_final_enqueue(struct ahash_request *req)
        return cryptd_hash_enqueue(req, cryptd_hash_final);
 }
 
-static void cryptd_hash_finup(struct crypto_async_request *req_async, int err)
+static void cryptd_hash_finup(void *data, int err)
 {
-       struct ahash_request *req = ahash_request_cast(req_async);
+       struct ahash_request *req = data;
        struct shash_desc *desc;
 
        desc = cryptd_hash_prepare(req, err);
@@ -591,9 +589,9 @@ static int cryptd_hash_finup_enqueue(struct ahash_request *req)
        return cryptd_hash_enqueue(req, cryptd_hash_finup);
 }
 
-static void cryptd_hash_digest(struct crypto_async_request *req_async, int err)
+static void cryptd_hash_digest(void *data, int err)
 {
-       struct ahash_request *req = ahash_request_cast(req_async);
+       struct ahash_request *req = data;
        struct crypto_ahash *tfm = crypto_ahash_reqtfm(req);
        struct cryptd_hash_ctx *ctx = crypto_ahash_ctx(tfm);
        struct crypto_shash *child = ctx->child;
@@ -767,24 +765,26 @@ out:
                crypto_free_aead(tfm);
 }
 
-static void cryptd_aead_encrypt(struct crypto_async_request *areq, int err)
+static void cryptd_aead_encrypt(void *data, int err)
 {
-       struct cryptd_aead_ctx *ctx = crypto_tfm_ctx(areq->tfm);
-       struct crypto_aead *child = ctx->child;
-       struct aead_request *req;
+       struct aead_request *req = data;
+       struct cryptd_aead_ctx *ctx;
+       struct crypto_aead *child;
 
-       req = container_of(areq, struct aead_request, base);
+       ctx = crypto_aead_ctx(crypto_aead_reqtfm(req));
+       child = ctx->child;
        cryptd_aead_crypt(req, child, err, crypto_aead_alg(child)->encrypt,
                          cryptd_aead_encrypt);
 }
 
-static void cryptd_aead_decrypt(struct crypto_async_request *areq, int err)
+static void cryptd_aead_decrypt(void *data, int err)
 {
-       struct cryptd_aead_ctx *ctx = crypto_tfm_ctx(areq->tfm);
-       struct crypto_aead *child = ctx->child;
-       struct aead_request *req;
+       struct aead_request *req = data;
+       struct cryptd_aead_ctx *ctx;
+       struct crypto_aead *child;
 
-       req = container_of(areq, struct aead_request, base);
+       ctx = crypto_aead_ctx(crypto_aead_reqtfm(req));
+       child = ctx->child;
        cryptd_aead_crypt(req, child, err, crypto_aead_alg(child)->decrypt,
                          cryptd_aead_decrypt);
 }
index 3766d47ebcc01933d76f2cfef87393e64e7ce42f..8f604f6554b1c3e2799abb1e02fa1e5d58d570e4 100644 (file)
@@ -85,9 +85,9 @@ static int crypto_cts_setkey(struct crypto_skcipher *parent, const u8 *key,
        return crypto_skcipher_setkey(child, key, keylen);
 }
 
-static void cts_cbc_crypt_done(struct crypto_async_request *areq, int err)
+static void cts_cbc_crypt_done(void *data, int err)
 {
-       struct skcipher_request *req = areq->data;
+       struct skcipher_request *req = data;
 
        if (err == -EINPROGRESS)
                return;
@@ -125,9 +125,9 @@ static int cts_cbc_encrypt(struct skcipher_request *req)
        return crypto_skcipher_encrypt(subreq);
 }
 
-static void crypto_cts_encrypt_done(struct crypto_async_request *areq, int err)
+static void crypto_cts_encrypt_done(void *data, int err)
 {
-       struct skcipher_request *req = areq->data;
+       struct skcipher_request *req = data;
 
        if (err)
                goto out;
@@ -219,9 +219,9 @@ static int cts_cbc_decrypt(struct skcipher_request *req)
        return crypto_skcipher_decrypt(subreq);
 }
 
-static void crypto_cts_decrypt_done(struct crypto_async_request *areq, int err)
+static void crypto_cts_decrypt_done(void *data, int err)
 {
-       struct skcipher_request *req = areq->data;
+       struct skcipher_request *req = data;
 
        if (err)
                goto out;
index e39c1bde1ac07bdd1606eec6161789f3786a8e57..0fcad279e6fe9295fa2037569ea1bbba2648a6af 100644 (file)
@@ -503,10 +503,9 @@ out:
        return err;
 }
 
-static void dh_safe_prime_complete_req(struct crypto_async_request *dh_req,
-                                      int err)
+static void dh_safe_prime_complete_req(void *data, int err)
 {
-       struct kpp_request *req = dh_req->data;
+       struct kpp_request *req = data;
 
        kpp_request_complete(req, err);
 }
index 307eba74b901e595ddb1a86e348e965f68d87f51..f7d4ef4837e5410698661972639f45ae99dc1465 100644 (file)
@@ -131,9 +131,9 @@ static int essiv_aead_setauthsize(struct crypto_aead *tfm,
        return crypto_aead_setauthsize(tctx->u.aead, authsize);
 }
 
-static void essiv_skcipher_done(struct crypto_async_request *areq, int err)
+static void essiv_skcipher_done(void *data, int err)
 {
-       struct skcipher_request *req = areq->data;
+       struct skcipher_request *req = data;
 
        skcipher_request_complete(req, err);
 }
@@ -166,9 +166,9 @@ static int essiv_skcipher_decrypt(struct skcipher_request *req)
        return essiv_skcipher_crypt(req, false);
 }
 
-static void essiv_aead_done(struct crypto_async_request *areq, int err)
+static void essiv_aead_done(void *data, int err)
 {
-       struct aead_request *req = areq->data;
+       struct aead_request *req = data;
        struct essiv_aead_request_ctx *rctx = aead_request_ctx(req);
 
        if (err == -EINPROGRESS)
index 338ee076974796423950edfaaf69abaa36c41959..4ba624450c3ffb51234174bfacec393f4c8c1526 100644 (file)
@@ -197,7 +197,7 @@ static inline unsigned int gcm_remain(unsigned int len)
        return len ? 16 - len : 0;
 }
 
-static void gcm_hash_len_done(struct crypto_async_request *areq, int err);
+static void gcm_hash_len_done(void *data, int err);
 
 static int gcm_hash_update(struct aead_request *req,
                           crypto_completion_t compl,
@@ -246,9 +246,9 @@ static int gcm_hash_len_continue(struct aead_request *req, u32 flags)
        return gctx->complete(req, flags);
 }
 
-static void gcm_hash_len_done(struct crypto_async_request *areq, int err)
+static void gcm_hash_len_done(void *data, int err)
 {
-       struct aead_request *req = areq->data;
+       struct aead_request *req = data;
 
        if (err)
                goto out;
@@ -267,10 +267,9 @@ static int gcm_hash_crypt_remain_continue(struct aead_request *req, u32 flags)
               gcm_hash_len_continue(req, flags);
 }
 
-static void gcm_hash_crypt_remain_done(struct crypto_async_request *areq,
-                                      int err)
+static void gcm_hash_crypt_remain_done(void *data, int err)
 {
-       struct aead_request *req = areq->data;
+       struct aead_request *req = data;
 
        if (err)
                goto out;
@@ -298,9 +297,9 @@ static int gcm_hash_crypt_continue(struct aead_request *req, u32 flags)
        return gcm_hash_crypt_remain_continue(req, flags);
 }
 
-static void gcm_hash_crypt_done(struct crypto_async_request *areq, int err)
+static void gcm_hash_crypt_done(void *data, int err)
 {
-       struct aead_request *req = areq->data;
+       struct aead_request *req = data;
 
        if (err)
                goto out;
@@ -326,10 +325,9 @@ static int gcm_hash_assoc_remain_continue(struct aead_request *req, u32 flags)
        return gcm_hash_crypt_remain_continue(req, flags);
 }
 
-static void gcm_hash_assoc_remain_done(struct crypto_async_request *areq,
-                                      int err)
+static void gcm_hash_assoc_remain_done(void *data, int err)
 {
-       struct aead_request *req = areq->data;
+       struct aead_request *req = data;
 
        if (err)
                goto out;
@@ -355,9 +353,9 @@ static int gcm_hash_assoc_continue(struct aead_request *req, u32 flags)
        return gcm_hash_assoc_remain_continue(req, flags);
 }
 
-static void gcm_hash_assoc_done(struct crypto_async_request *areq, int err)
+static void gcm_hash_assoc_done(void *data, int err)
 {
-       struct aead_request *req = areq->data;
+       struct aead_request *req = data;
 
        if (err)
                goto out;
@@ -380,9 +378,9 @@ static int gcm_hash_init_continue(struct aead_request *req, u32 flags)
        return gcm_hash_assoc_remain_continue(req, flags);
 }
 
-static void gcm_hash_init_done(struct crypto_async_request *areq, int err)
+static void gcm_hash_init_done(void *data, int err)
 {
-       struct aead_request *req = areq->data;
+       struct aead_request *req = data;
 
        if (err)
                goto out;
@@ -433,9 +431,9 @@ static int gcm_encrypt_continue(struct aead_request *req, u32 flags)
        return gcm_hash(req, flags);
 }
 
-static void gcm_encrypt_done(struct crypto_async_request *areq, int err)
+static void gcm_encrypt_done(void *data, int err)
 {
-       struct aead_request *req = areq->data;
+       struct aead_request *req = data;
 
        if (err)
                goto out;
@@ -477,9 +475,9 @@ static int crypto_gcm_verify(struct aead_request *req)
        return crypto_memneq(iauth_tag, auth_tag, authsize) ? -EBADMSG : 0;
 }
 
-static void gcm_decrypt_done(struct crypto_async_request *areq, int err)
+static void gcm_decrypt_done(void *data, int err)
 {
-       struct aead_request *req = areq->data;
+       struct aead_request *req = data;
 
        if (!err)
                err = crypto_gcm_verify(req);
index 7d00a3bcb66706cc280fdc67471cbf0aeac5465d..6f4c1884d0e96c0a2bfd7e9d836dc181f0775abd 100644 (file)
@@ -252,10 +252,9 @@ static int hctr2_finish(struct skcipher_request *req)
        return 0;
 }
 
-static void hctr2_xctr_done(struct crypto_async_request *areq,
-                                   int err)
+static void hctr2_xctr_done(void *data, int err)
 {
-       struct skcipher_request *req = areq->data;
+       struct skcipher_request *req = data;
 
        if (!err)
                err = hctr2_finish(req);
index 8d59a66b652555819452fd764c0e6094d104f508..1b0f76ba3eb5ee898d1f1f86e594e44d99c9b8bd 100644 (file)
@@ -205,9 +205,9 @@ static int lrw_xor_tweak_post(struct skcipher_request *req)
        return lrw_xor_tweak(req, true);
 }
 
-static void lrw_crypt_done(struct crypto_async_request *areq, int err)
+static void lrw_crypt_done(void *data, int err)
 {
-       struct skcipher_request *req = areq->data;
+       struct skcipher_request *req = data;
 
        if (!err) {
                struct lrw_request_ctx *rctx = skcipher_request_ctx(req);
index 9d10b846ccf730ffbcf1f6164b63c711641a2fcc..8c1d0ca412137f563ca6fdd1da2d35fbb80b15c8 100644 (file)
@@ -63,9 +63,9 @@ static void pcrypt_aead_serial(struct padata_priv *padata)
        aead_request_complete(req->base.data, padata->info);
 }
 
-static void pcrypt_aead_done(struct crypto_async_request *areq, int err)
+static void pcrypt_aead_done(void *data, int err)
 {
-       struct aead_request *req = areq->data;
+       struct aead_request *req = data;
        struct pcrypt_request *preq = aead_request_ctx(req);
        struct padata_priv *padata = pcrypt_request_padata(preq);
 
index 02028670331d510d00d9137471854f74800ac031..d2e5e104f8cfe386d0380f5dc469c373bca425ec 100644 (file)
@@ -210,10 +210,9 @@ out:
        return err;
 }
 
-static void pkcs1pad_encrypt_sign_complete_cb(
-               struct crypto_async_request *child_async_req, int err)
+static void pkcs1pad_encrypt_sign_complete_cb(void *data, int err)
 {
-       struct akcipher_request *req = child_async_req->data;
+       struct akcipher_request *req = data;
 
        if (err == -EINPROGRESS)
                goto out;
@@ -326,10 +325,9 @@ done:
        return err;
 }
 
-static void pkcs1pad_decrypt_complete_cb(
-               struct crypto_async_request *child_async_req, int err)
+static void pkcs1pad_decrypt_complete_cb(void *data, int err)
 {
-       struct akcipher_request *req = child_async_req->data;
+       struct akcipher_request *req = data;
 
        if (err == -EINPROGRESS)
                goto out;
@@ -506,10 +504,9 @@ done:
        return err;
 }
 
-static void pkcs1pad_verify_complete_cb(
-               struct crypto_async_request *child_async_req, int err)
+static void pkcs1pad_verify_complete_cb(void *data, int err)
 {
-       struct akcipher_request *req = child_async_req->data;
+       struct akcipher_request *req = data;
 
        if (err == -EINPROGRESS)
                goto out;
index b1bcfe537daf11059aeef1c8aae7b04c2b05641a..17e11d51ddc36370265f4b2a6e3bf3933895c005 100644 (file)
@@ -36,10 +36,9 @@ out:
        kfree_sensitive(subreq->iv);
 }
 
-static void seqiv_aead_encrypt_complete(struct crypto_async_request *base,
-                                       int err)
+static void seqiv_aead_encrypt_complete(void *data, int err)
 {
-       struct aead_request *req = base->data;
+       struct aead_request *req = data;
 
        seqiv_aead_encrypt_complete2(req, err);
        aead_request_complete(req, err);
index de6cbcf69bbd652090df85d19d029ec5b4b1082f..09be909a6a1aadf7ab1b19ed9c9488e5352c82dd 100644 (file)
@@ -140,9 +140,9 @@ static int xts_xor_tweak_post(struct skcipher_request *req, bool enc)
        return xts_xor_tweak(req, true, enc);
 }
 
-static void xts_cts_done(struct crypto_async_request *areq, int err)
+static void xts_cts_done(void *data, int err)
 {
-       struct skcipher_request *req = areq->data;
+       struct skcipher_request *req = data;
        le128 b;
 
        if (!err) {
@@ -196,9 +196,9 @@ static int xts_cts_final(struct skcipher_request *req,
        return 0;
 }
 
-static void xts_encrypt_done(struct crypto_async_request *areq, int err)
+static void xts_encrypt_done(void *data, int err)
 {
-       struct skcipher_request *req = areq->data;
+       struct skcipher_request *req = data;
 
        if (!err) {
                struct xts_request_ctx *rctx = skcipher_request_ctx(req);
@@ -216,9 +216,9 @@ static void xts_encrypt_done(struct crypto_async_request *areq, int err)
        skcipher_request_complete(req, err);
 }
 
-static void xts_decrypt_done(struct crypto_async_request *areq, int err)
+static void xts_decrypt_done(void *data, int err)
 {
-       struct skcipher_request *req = areq->data;
+       struct skcipher_request *req = data;
 
        if (!err) {
                struct xts_request_ctx *rctx = skcipher_request_ctx(req);
index a77cf0da08162b18381225a8f17de109e027e614..e7c1db2739ec036e35727c0362ea84b5ddce9d6c 100644 (file)
@@ -2099,10 +2099,9 @@ struct atmel_sha_authenc_reqctx {
        unsigned int            digestlen;
 };
 
-static void atmel_sha_authenc_complete(struct crypto_async_request *areq,
-                                      int err)
+static void atmel_sha_authenc_complete(void *data, int err)
 {
-       struct ahash_request *req = areq->data;
+       struct ahash_request *req = data;
        struct atmel_sha_authenc_reqctx *authctx  = ahash_request_ctx(req);
 
        authctx->cb(authctx->aes_dev, err, authctx->base.dd->is_async);
index 1fd81e74a174faa82d5bd9247525a3ea639cacd1..fede394ae2ab501601a071f8cdc1edc210a5d913 100644 (file)
@@ -305,8 +305,7 @@ enum {
 static inline void crypto_request_complete(struct crypto_async_request *req,
                                           int err)
 {
-       crypto_completion_t complete = req->complete;
-       complete(req, err);
+       req->complete(req->data, err);
 }
 
 #endif /* _CRYPTO_ALGAPI_H */
index a5db86670bdfa4e7c2dba1feaa0620824ef4942c..7e76623f9ec3007ec120ed8f9d9793f39fd56bdf 100644 (file)
@@ -21,8 +21,6 @@
 
 #define ALG_MAX_PAGES                  16
 
-struct crypto_async_request;
-
 struct alg_sock {
        /* struct sock must be the first member of struct alg_sock */
        struct sock sk;
@@ -235,7 +233,7 @@ int af_alg_sendmsg(struct socket *sock, struct msghdr *msg, size_t size,
 ssize_t af_alg_sendpage(struct socket *sock, struct page *page,
                        int offset, size_t size, int flags);
 void af_alg_free_resources(struct af_alg_async_req *areq);
-void af_alg_async_cb(struct crypto_async_request *_req, int err);
+void af_alg_async_cb(void *data, int err);
 __poll_t af_alg_poll(struct file *file, struct socket *sock,
                         poll_table *wait);
 struct af_alg_async_req *af_alg_alloc_areq(struct sock *sk,
index b18f6e669fb10dc115c899d6c6810f8e64c4c591..80f6350fb5886a5a029b75cd5f8cdda06625112a 100644 (file)
@@ -176,8 +176,8 @@ struct crypto_async_request;
 struct crypto_tfm;
 struct crypto_type;
 
-typedef struct crypto_async_request crypto_completion_data_t;
-typedef void (*crypto_completion_t)(struct crypto_async_request *req, int err);
+typedef void crypto_completion_data_t;
+typedef void (*crypto_completion_t)(void *req, int err);
 
 /**
  * DOC: Block Cipher Context Data Structures
@@ -596,12 +596,12 @@ struct crypto_wait {
 /*
  * Async ops completion helper functioons
  */
-static inline void *crypto_get_completion_data(crypto_completion_data_t *req)
+static inline void *crypto_get_completion_data(void *data)
 {
-       return req->data;
+       return data;
 }
 
-void crypto_req_done(struct crypto_async_request *req, int err);
+void crypto_req_done(void *req, int err);
 
 static inline int crypto_wait_req(int err, struct crypto_wait *wait)
 {