Commit 255e48eb authored by Herbert Xu's avatar Herbert Xu

crypto: api - Use data directly in completion function

This patch does the final flag day conversion of all completion
functions which are now all contained in the Crypto API.
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 234650bd
...@@ -308,10 +308,9 @@ static int adiantum_finish(struct skcipher_request *req) ...@@ -308,10 +308,9 @@ static int adiantum_finish(struct skcipher_request *req)
return 0; return 0;
} }
static void adiantum_streamcipher_done(struct crypto_async_request *areq, static void adiantum_streamcipher_done(void *data, int err)
int err)
{ {
struct skcipher_request *req = areq->data; struct skcipher_request *req = data;
if (!err) if (!err)
err = adiantum_finish(req); err = adiantum_finish(req);
......
...@@ -1186,7 +1186,7 @@ EXPORT_SYMBOL_GPL(af_alg_free_resources); ...@@ -1186,7 +1186,7 @@ EXPORT_SYMBOL_GPL(af_alg_free_resources);
/** /**
* af_alg_async_cb - AIO callback handler * 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(); * @err: if non-zero, error result to be returned via ki_complete();
* otherwise return the AIO output length via ki_complete(). * otherwise return the AIO output length via ki_complete().
* *
...@@ -1196,9 +1196,9 @@ EXPORT_SYMBOL_GPL(af_alg_free_resources); ...@@ -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 * The number of bytes to be generated with the AIO operation must be set
* in areq->outlen before the AIO callback handler is invoked. * 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 sock *sk = areq->sk;
struct kiocb *iocb = areq->iocb; struct kiocb *iocb = areq->iocb;
unsigned int resultlen; unsigned int resultlen;
......
...@@ -256,9 +256,9 @@ static void ahash_restore_req(struct ahash_request *req, int err) ...@@ -256,9 +256,9 @@ static void ahash_restore_req(struct ahash_request *req, int err)
kfree_sensitive(subreq); 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) if (err == -EINPROGRESS)
goto out; goto out;
...@@ -348,9 +348,9 @@ int crypto_ahash_digest(struct ahash_request *req) ...@@ -348,9 +348,9 @@ int crypto_ahash_digest(struct ahash_request *req)
} }
EXPORT_SYMBOL_GPL(crypto_ahash_digest); 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) if (err == -EINPROGRESS)
return; return;
...@@ -378,9 +378,9 @@ static int ahash_def_finup_finish1(struct ahash_request *req, int err) ...@@ -378,9 +378,9 @@ static int ahash_def_finup_finish1(struct ahash_request *req, int err)
return err; 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; struct ahash_request *subreq;
if (err == -EINPROGRESS) if (err == -EINPROGRESS)
......
...@@ -643,9 +643,9 @@ int crypto_has_alg(const char *name, u32 type, u32 mask) ...@@ -643,9 +643,9 @@ int crypto_has_alg(const char *name, u32 type, u32 mask)
} }
EXPORT_SYMBOL_GPL(crypto_has_alg); 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) if (err == -EINPROGRESS)
return; return;
......
...@@ -109,9 +109,9 @@ static int crypto_authenc_setkey(struct crypto_aead *authenc, const u8 *key, ...@@ -109,9 +109,9 @@ static int crypto_authenc_setkey(struct crypto_aead *authenc, const u8 *key,
return err; 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 crypto_aead *authenc = crypto_aead_reqtfm(req);
struct aead_instance *inst = aead_alg_instance(authenc); struct aead_instance *inst = aead_alg_instance(authenc);
struct authenc_instance_ctx *ictx = aead_instance_ctx(inst); 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) ...@@ -160,10 +160,9 @@ static int crypto_authenc_genicv(struct aead_request *req, unsigned int flags)
return 0; return 0;
} }
static void crypto_authenc_encrypt_done(struct crypto_async_request *req, static void crypto_authenc_encrypt_done(void *data, int err)
int err)
{ {
struct aead_request *areq = req->data; struct aead_request *areq = data;
if (err) if (err)
goto out; goto out;
...@@ -261,10 +260,9 @@ static int crypto_authenc_decrypt_tail(struct aead_request *req, ...@@ -261,10 +260,9 @@ static int crypto_authenc_decrypt_tail(struct aead_request *req,
return crypto_skcipher_decrypt(skreq); return crypto_skcipher_decrypt(skreq);
} }
static void authenc_verify_ahash_done(struct crypto_async_request *areq, static void authenc_verify_ahash_done(void *data, int err)
int err)
{ {
struct aead_request *req = areq->data; struct aead_request *req = data;
if (err) if (err)
goto out; goto out;
......
...@@ -107,10 +107,9 @@ static int crypto_authenc_esn_genicv_tail(struct aead_request *req, ...@@ -107,10 +107,9 @@ static int crypto_authenc_esn_genicv_tail(struct aead_request *req,
return 0; return 0;
} }
static void authenc_esn_geniv_ahash_done(struct crypto_async_request *areq, static void authenc_esn_geniv_ahash_done(void *data, int err)
int err)
{ {
struct aead_request *req = areq->data; struct aead_request *req = data;
err = err ?: crypto_authenc_esn_genicv_tail(req, 0); err = err ?: crypto_authenc_esn_genicv_tail(req, 0);
aead_request_complete(req, err); aead_request_complete(req, err);
...@@ -153,10 +152,9 @@ static int crypto_authenc_esn_genicv(struct aead_request *req, ...@@ -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, static void crypto_authenc_esn_encrypt_done(void *data, int err)
int err)
{ {
struct aead_request *areq = req->data; struct aead_request *areq = data;
if (!err) if (!err)
err = crypto_authenc_esn_genicv(areq, 0); err = crypto_authenc_esn_genicv(areq, 0);
...@@ -258,10 +256,9 @@ static int crypto_authenc_esn_decrypt_tail(struct aead_request *req, ...@@ -258,10 +256,9 @@ static int crypto_authenc_esn_decrypt_tail(struct aead_request *req,
return crypto_skcipher_decrypt(skreq); return crypto_skcipher_decrypt(skreq);
} }
static void authenc_esn_verify_ahash_done(struct crypto_async_request *areq, static void authenc_esn_verify_ahash_done(void *data, int err)
int err)
{ {
struct aead_request *req = areq->data; struct aead_request *req = data;
err = err ?: crypto_authenc_esn_decrypt_tail(req, 0); err = err ?: crypto_authenc_esn_decrypt_tail(req, 0);
authenc_esn_request_complete(req, err); authenc_esn_request_complete(req, err);
......
...@@ -224,9 +224,9 @@ static int crypto_ccm_auth(struct aead_request *req, struct scatterlist *plain, ...@@ -224,9 +224,9 @@ static int crypto_ccm_auth(struct aead_request *req, struct scatterlist *plain,
return err; 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_aead *aead = crypto_aead_reqtfm(req);
struct crypto_ccm_req_priv_ctx *pctx = crypto_ccm_reqctx(req); struct crypto_ccm_req_priv_ctx *pctx = crypto_ccm_reqctx(req);
u8 *odata = pctx->odata; u8 *odata = pctx->odata;
...@@ -320,10 +320,9 @@ static int crypto_ccm_encrypt(struct aead_request *req) ...@@ -320,10 +320,9 @@ static int crypto_ccm_encrypt(struct aead_request *req)
return err; return err;
} }
static void crypto_ccm_decrypt_done(struct crypto_async_request *areq, static void crypto_ccm_decrypt_done(void *data, int err)
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_ccm_req_priv_ctx *pctx = crypto_ccm_reqctx(req);
struct crypto_aead *aead = crypto_aead_reqtfm(req); struct crypto_aead *aead = crypto_aead_reqtfm(req);
unsigned int authsize = crypto_aead_authsize(aead); unsigned int authsize = crypto_aead_authsize(aead);
......
...@@ -115,9 +115,9 @@ static int poly_copy_tag(struct aead_request *req) ...@@ -115,9 +115,9 @@ static int poly_copy_tag(struct aead_request *req)
return 0; 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) static int chacha_decrypt(struct aead_request *req)
...@@ -161,9 +161,9 @@ static int poly_tail_continue(struct aead_request *req) ...@@ -161,9 +161,9 @@ static int poly_tail_continue(struct aead_request *req)
return chacha_decrypt(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) static int poly_tail(struct aead_request *req)
...@@ -191,9 +191,9 @@ 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); 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) static int poly_cipherpad(struct aead_request *req)
...@@ -220,9 +220,9 @@ static int poly_cipherpad(struct aead_request *req) ...@@ -220,9 +220,9 @@ static int poly_cipherpad(struct aead_request *req)
return poly_tail(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) static int poly_cipher(struct aead_request *req)
...@@ -250,9 +250,9 @@ static int poly_cipher(struct aead_request *req) ...@@ -250,9 +250,9 @@ static int poly_cipher(struct aead_request *req)
return poly_cipherpad(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) static int poly_adpad(struct aead_request *req)
...@@ -279,9 +279,9 @@ static int poly_adpad(struct aead_request *req) ...@@ -279,9 +279,9 @@ static int poly_adpad(struct aead_request *req)
return poly_cipher(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) static int poly_ad(struct aead_request *req)
...@@ -303,9 +303,9 @@ static int poly_ad(struct aead_request *req) ...@@ -303,9 +303,9 @@ static int poly_ad(struct aead_request *req)
return poly_adpad(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) static int poly_setkey(struct aead_request *req)
...@@ -329,9 +329,9 @@ static int poly_setkey(struct aead_request *req) ...@@ -329,9 +329,9 @@ static int poly_setkey(struct aead_request *req)
return poly_ad(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) static int poly_init(struct aead_request *req)
...@@ -352,9 +352,9 @@ static int poly_init(struct aead_request *req) ...@@ -352,9 +352,9 @@ static int poly_init(struct aead_request *req)
return poly_setkey(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) static int poly_genkey(struct aead_request *req)
...@@ -391,9 +391,9 @@ static int poly_genkey(struct aead_request *req) ...@@ -391,9 +391,9 @@ static int poly_genkey(struct aead_request *req)
return poly_init(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) static int chacha_encrypt(struct aead_request *req)
......
...@@ -285,10 +285,9 @@ static void cryptd_skcipher_complete(struct skcipher_request *req, int err, ...@@ -285,10 +285,9 @@ static void cryptd_skcipher_complete(struct skcipher_request *req, int err,
crypto_free_skcipher(tfm); crypto_free_skcipher(tfm);
} }
static void cryptd_skcipher_encrypt(struct crypto_async_request *base, static void cryptd_skcipher_encrypt(void *data, int err)
int err)
{ {
struct skcipher_request *req = skcipher_request_cast(base); struct skcipher_request *req = data;
struct skcipher_request *subreq; struct skcipher_request *subreq;
subreq = cryptd_skcipher_prepare(req, err); subreq = cryptd_skcipher_prepare(req, err);
...@@ -298,10 +297,9 @@ static void cryptd_skcipher_encrypt(struct crypto_async_request *base, ...@@ -298,10 +297,9 @@ static void cryptd_skcipher_encrypt(struct crypto_async_request *base,
cryptd_skcipher_complete(req, err, cryptd_skcipher_encrypt); cryptd_skcipher_complete(req, err, cryptd_skcipher_encrypt);
} }
static void cryptd_skcipher_decrypt(struct crypto_async_request *base, static void cryptd_skcipher_decrypt(void *data, int err)
int err)
{ {
struct skcipher_request *req = skcipher_request_cast(base); struct skcipher_request *req = data;
struct skcipher_request *subreq; struct skcipher_request *subreq;
subreq = cryptd_skcipher_prepare(req, err); subreq = cryptd_skcipher_prepare(req, err);
...@@ -515,9 +513,9 @@ static void cryptd_hash_complete(struct ahash_request *req, int err, ...@@ -515,9 +513,9 @@ static void cryptd_hash_complete(struct ahash_request *req, int err,
crypto_free_ahash(tfm); 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 crypto_ahash *tfm = crypto_ahash_reqtfm(req);
struct cryptd_hash_ctx *ctx = crypto_ahash_ctx(tfm); struct cryptd_hash_ctx *ctx = crypto_ahash_ctx(tfm);
struct crypto_shash *child = ctx->child; struct crypto_shash *child = ctx->child;
...@@ -540,9 +538,9 @@ static int cryptd_hash_init_enqueue(struct ahash_request *req) ...@@ -540,9 +538,9 @@ static int cryptd_hash_init_enqueue(struct ahash_request *req)
return cryptd_hash_enqueue(req, cryptd_hash_init); 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; struct shash_desc *desc;
desc = cryptd_hash_prepare(req, err); desc = cryptd_hash_prepare(req, err);
...@@ -557,9 +555,9 @@ static int cryptd_hash_update_enqueue(struct ahash_request *req) ...@@ -557,9 +555,9 @@ static int cryptd_hash_update_enqueue(struct ahash_request *req)
return cryptd_hash_enqueue(req, cryptd_hash_update); 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; struct shash_desc *desc;
desc = cryptd_hash_prepare(req, err); desc = cryptd_hash_prepare(req, err);
...@@ -574,9 +572,9 @@ static int cryptd_hash_final_enqueue(struct ahash_request *req) ...@@ -574,9 +572,9 @@ static int cryptd_hash_final_enqueue(struct ahash_request *req)
return cryptd_hash_enqueue(req, cryptd_hash_final); 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; struct shash_desc *desc;
desc = cryptd_hash_prepare(req, err); desc = cryptd_hash_prepare(req, err);
...@@ -591,9 +589,9 @@ static int cryptd_hash_finup_enqueue(struct ahash_request *req) ...@@ -591,9 +589,9 @@ static int cryptd_hash_finup_enqueue(struct ahash_request *req)
return cryptd_hash_enqueue(req, cryptd_hash_finup); 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 crypto_ahash *tfm = crypto_ahash_reqtfm(req);
struct cryptd_hash_ctx *ctx = crypto_ahash_ctx(tfm); struct cryptd_hash_ctx *ctx = crypto_ahash_ctx(tfm);
struct crypto_shash *child = ctx->child; struct crypto_shash *child = ctx->child;
...@@ -767,24 +765,26 @@ static void cryptd_aead_crypt(struct aead_request *req, ...@@ -767,24 +765,26 @@ static void cryptd_aead_crypt(struct aead_request *req,
crypto_free_aead(tfm); 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 aead_request *req = data;
struct crypto_aead *child = ctx->child; struct cryptd_aead_ctx *ctx;
struct aead_request *req; 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_crypt(req, child, err, crypto_aead_alg(child)->encrypt,
cryptd_aead_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 aead_request *req = data;
struct crypto_aead *child = ctx->child; struct cryptd_aead_ctx *ctx;
struct aead_request *req; 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_crypt(req, child, err, crypto_aead_alg(child)->decrypt,
cryptd_aead_decrypt); cryptd_aead_decrypt);
} }
......
...@@ -85,9 +85,9 @@ static int crypto_cts_setkey(struct crypto_skcipher *parent, const u8 *key, ...@@ -85,9 +85,9 @@ static int crypto_cts_setkey(struct crypto_skcipher *parent, const u8 *key,
return crypto_skcipher_setkey(child, key, keylen); 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) if (err == -EINPROGRESS)
return; return;
...@@ -125,9 +125,9 @@ static int cts_cbc_encrypt(struct skcipher_request *req) ...@@ -125,9 +125,9 @@ static int cts_cbc_encrypt(struct skcipher_request *req)
return crypto_skcipher_encrypt(subreq); 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) if (err)
goto out; goto out;
...@@ -219,9 +219,9 @@ static int cts_cbc_decrypt(struct skcipher_request *req) ...@@ -219,9 +219,9 @@ static int cts_cbc_decrypt(struct skcipher_request *req)
return crypto_skcipher_decrypt(subreq); 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) if (err)
goto out; goto out;
......
...@@ -503,10 +503,9 @@ static int dh_safe_prime_set_secret(struct crypto_kpp *tfm, const void *buffer, ...@@ -503,10 +503,9 @@ static int dh_safe_prime_set_secret(struct crypto_kpp *tfm, const void *buffer,
return err; return err;
} }
static void dh_safe_prime_complete_req(struct crypto_async_request *dh_req, static void dh_safe_prime_complete_req(void *data, int err)
int err)
{ {
struct kpp_request *req = dh_req->data; struct kpp_request *req = data;
kpp_request_complete(req, err); kpp_request_complete(req, err);
} }
......
...@@ -131,9 +131,9 @@ static int essiv_aead_setauthsize(struct crypto_aead *tfm, ...@@ -131,9 +131,9 @@ static int essiv_aead_setauthsize(struct crypto_aead *tfm,
return crypto_aead_setauthsize(tctx->u.aead, authsize); 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); skcipher_request_complete(req, err);
} }
...@@ -166,9 +166,9 @@ static int essiv_skcipher_decrypt(struct skcipher_request *req) ...@@ -166,9 +166,9 @@ static int essiv_skcipher_decrypt(struct skcipher_request *req)
return essiv_skcipher_crypt(req, false); 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); struct essiv_aead_request_ctx *rctx = aead_request_ctx(req);
if (err == -EINPROGRESS) if (err == -EINPROGRESS)
......
...@@ -197,7 +197,7 @@ static inline unsigned int gcm_remain(unsigned int len) ...@@ -197,7 +197,7 @@ static inline unsigned int gcm_remain(unsigned int len)
return len ? 16 - len : 0; 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, static int gcm_hash_update(struct aead_request *req,
crypto_completion_t compl, crypto_completion_t compl,
...@@ -246,9 +246,9 @@ static int gcm_hash_len_continue(struct aead_request *req, u32 flags) ...@@ -246,9 +246,9 @@ static int gcm_hash_len_continue(struct aead_request *req, u32 flags)
return gctx->complete(req, 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) if (err)
goto out; goto out;
...@@ -267,10 +267,9 @@ static int gcm_hash_crypt_remain_continue(struct aead_request *req, u32 flags) ...@@ -267,10 +267,9 @@ static int gcm_hash_crypt_remain_continue(struct aead_request *req, u32 flags)
gcm_hash_len_continue(req, flags); gcm_hash_len_continue(req, flags);
} }
static void gcm_hash_crypt_remain_done(struct crypto_async_request *areq, static void gcm_hash_crypt_remain_done(void *data, int err)
int err)
{ {
struct aead_request *req = areq->data; struct aead_request *req = data;
if (err) if (err)
goto out; goto out;
...@@ -298,9 +297,9 @@ static int gcm_hash_crypt_continue(struct aead_request *req, u32 flags) ...@@ -298,9 +297,9 @@ static int gcm_hash_crypt_continue(struct aead_request *req, u32 flags)
return gcm_hash_crypt_remain_continue(req, 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) if (err)
goto out; goto out;
...@@ -326,10 +325,9 @@ static int gcm_hash_assoc_remain_continue(struct aead_request *req, u32 flags) ...@@ -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); return gcm_hash_crypt_remain_continue(req, flags);
} }
static void gcm_hash_assoc_remain_done(struct crypto_async_request *areq, static void gcm_hash_assoc_remain_done(void *data, int err)
int err)
{ {
struct aead_request *req = areq->data; struct aead_request *req = data;
if (err) if (err)
goto out; goto out;
...@@ -355,9 +353,9 @@ static int gcm_hash_assoc_continue(struct aead_request *req, u32 flags) ...@@ -355,9 +353,9 @@ static int gcm_hash_assoc_continue(struct aead_request *req, u32 flags)
return gcm_hash_assoc_remain_continue(req, 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) if (err)
goto out; goto out;
...@@ -380,9 +378,9 @@ static int gcm_hash_init_continue(struct aead_request *req, u32 flags) ...@@ -380,9 +378,9 @@ static int gcm_hash_init_continue(struct aead_request *req, u32 flags)
return gcm_hash_assoc_remain_continue(req, 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) if (err)
goto out; goto out;
...@@ -433,9 +431,9 @@ static int gcm_encrypt_continue(struct aead_request *req, u32 flags) ...@@ -433,9 +431,9 @@ static int gcm_encrypt_continue(struct aead_request *req, u32 flags)
return gcm_hash(req, 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) if (err)
goto out; goto out;
...@@ -477,9 +475,9 @@ static int crypto_gcm_verify(struct aead_request *req) ...@@ -477,9 +475,9 @@ static int crypto_gcm_verify(struct aead_request *req)
return crypto_memneq(iauth_tag, auth_tag, authsize) ? -EBADMSG : 0; 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) if (!err)
err = crypto_gcm_verify(req); err = crypto_gcm_verify(req);
......
...@@ -252,10 +252,9 @@ static int hctr2_finish(struct skcipher_request *req) ...@@ -252,10 +252,9 @@ static int hctr2_finish(struct skcipher_request *req)
return 0; return 0;
} }
static void hctr2_xctr_done(struct crypto_async_request *areq, static void hctr2_xctr_done(void *data, int err)
int err)
{ {
struct skcipher_request *req = areq->data; struct skcipher_request *req = data;
if (!err) if (!err)
err = hctr2_finish(req); err = hctr2_finish(req);
......
...@@ -205,9 +205,9 @@ static int lrw_xor_tweak_post(struct skcipher_request *req) ...@@ -205,9 +205,9 @@ static int lrw_xor_tweak_post(struct skcipher_request *req)
return lrw_xor_tweak(req, true); 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) { if (!err) {
struct lrw_request_ctx *rctx = skcipher_request_ctx(req); struct lrw_request_ctx *rctx = skcipher_request_ctx(req);
......
...@@ -63,9 +63,9 @@ static void pcrypt_aead_serial(struct padata_priv *padata) ...@@ -63,9 +63,9 @@ static void pcrypt_aead_serial(struct padata_priv *padata)
aead_request_complete(req->base.data, padata->info); 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 pcrypt_request *preq = aead_request_ctx(req);
struct padata_priv *padata = pcrypt_request_padata(preq); struct padata_priv *padata = pcrypt_request_padata(preq);
......
...@@ -210,10 +210,9 @@ static int pkcs1pad_encrypt_sign_complete(struct akcipher_request *req, int err) ...@@ -210,10 +210,9 @@ static int pkcs1pad_encrypt_sign_complete(struct akcipher_request *req, int err)
return err; return err;
} }
static void pkcs1pad_encrypt_sign_complete_cb( static void pkcs1pad_encrypt_sign_complete_cb(void *data, int err)
struct crypto_async_request *child_async_req, int err)
{ {
struct akcipher_request *req = child_async_req->data; struct akcipher_request *req = data;
if (err == -EINPROGRESS) if (err == -EINPROGRESS)
goto out; goto out;
...@@ -326,10 +325,9 @@ static int pkcs1pad_decrypt_complete(struct akcipher_request *req, int err) ...@@ -326,10 +325,9 @@ static int pkcs1pad_decrypt_complete(struct akcipher_request *req, int err)
return err; return err;
} }
static void pkcs1pad_decrypt_complete_cb( static void pkcs1pad_decrypt_complete_cb(void *data, int err)
struct crypto_async_request *child_async_req, int err)
{ {
struct akcipher_request *req = child_async_req->data; struct akcipher_request *req = data;
if (err == -EINPROGRESS) if (err == -EINPROGRESS)
goto out; goto out;
...@@ -506,10 +504,9 @@ static int pkcs1pad_verify_complete(struct akcipher_request *req, int err) ...@@ -506,10 +504,9 @@ static int pkcs1pad_verify_complete(struct akcipher_request *req, int err)
return err; return err;
} }
static void pkcs1pad_verify_complete_cb( static void pkcs1pad_verify_complete_cb(void *data, int err)
struct crypto_async_request *child_async_req, int err)
{ {
struct akcipher_request *req = child_async_req->data; struct akcipher_request *req = data;
if (err == -EINPROGRESS) if (err == -EINPROGRESS)
goto out; goto out;
......
...@@ -36,10 +36,9 @@ static void seqiv_aead_encrypt_complete2(struct aead_request *req, int err) ...@@ -36,10 +36,9 @@ static void seqiv_aead_encrypt_complete2(struct aead_request *req, int err)
kfree_sensitive(subreq->iv); kfree_sensitive(subreq->iv);
} }
static void seqiv_aead_encrypt_complete(struct crypto_async_request *base, static void seqiv_aead_encrypt_complete(void *data, int err)
int err)
{ {
struct aead_request *req = base->data; struct aead_request *req = data;
seqiv_aead_encrypt_complete2(req, err); seqiv_aead_encrypt_complete2(req, err);
aead_request_complete(req, err); aead_request_complete(req, err);
......
...@@ -140,9 +140,9 @@ static int xts_xor_tweak_post(struct skcipher_request *req, bool enc) ...@@ -140,9 +140,9 @@ static int xts_xor_tweak_post(struct skcipher_request *req, bool enc)
return xts_xor_tweak(req, true, 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; le128 b;
if (!err) { if (!err) {
...@@ -196,9 +196,9 @@ static int xts_cts_final(struct skcipher_request *req, ...@@ -196,9 +196,9 @@ static int xts_cts_final(struct skcipher_request *req,
return 0; 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) { if (!err) {
struct xts_request_ctx *rctx = skcipher_request_ctx(req); 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) ...@@ -216,9 +216,9 @@ static void xts_encrypt_done(struct crypto_async_request *areq, int err)
skcipher_request_complete(req, 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) { if (!err) {
struct xts_request_ctx *rctx = skcipher_request_ctx(req); struct xts_request_ctx *rctx = skcipher_request_ctx(req);
......
...@@ -2099,10 +2099,9 @@ struct atmel_sha_authenc_reqctx { ...@@ -2099,10 +2099,9 @@ struct atmel_sha_authenc_reqctx {
unsigned int digestlen; unsigned int digestlen;
}; };
static void atmel_sha_authenc_complete(struct crypto_async_request *areq, static void atmel_sha_authenc_complete(void *data, int err)
int err)
{ {
struct ahash_request *req = areq->data; struct ahash_request *req = data;
struct atmel_sha_authenc_reqctx *authctx = ahash_request_ctx(req); struct atmel_sha_authenc_reqctx *authctx = ahash_request_ctx(req);
authctx->cb(authctx->aes_dev, err, authctx->base.dd->is_async); authctx->cb(authctx->aes_dev, err, authctx->base.dd->is_async);
......
...@@ -305,8 +305,7 @@ enum { ...@@ -305,8 +305,7 @@ enum {
static inline void crypto_request_complete(struct crypto_async_request *req, static inline void crypto_request_complete(struct crypto_async_request *req,
int err) int err)
{ {
crypto_completion_t complete = req->complete; req->complete(req->data, err);
complete(req, err);
} }
#endif /* _CRYPTO_ALGAPI_H */ #endif /* _CRYPTO_ALGAPI_H */
...@@ -21,8 +21,6 @@ ...@@ -21,8 +21,6 @@
#define ALG_MAX_PAGES 16 #define ALG_MAX_PAGES 16
struct crypto_async_request;
struct alg_sock { struct alg_sock {
/* struct sock must be the first member of struct alg_sock */ /* struct sock must be the first member of struct alg_sock */
struct sock sk; struct sock sk;
...@@ -235,7 +233,7 @@ int af_alg_sendmsg(struct socket *sock, struct msghdr *msg, size_t size, ...@@ -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, ssize_t af_alg_sendpage(struct socket *sock, struct page *page,
int offset, size_t size, int flags); int offset, size_t size, int flags);
void af_alg_free_resources(struct af_alg_async_req *areq); 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_t af_alg_poll(struct file *file, struct socket *sock,
poll_table *wait); poll_table *wait);
struct af_alg_async_req *af_alg_alloc_areq(struct sock *sk, struct af_alg_async_req *af_alg_alloc_areq(struct sock *sk,
......
...@@ -176,8 +176,8 @@ struct crypto_async_request; ...@@ -176,8 +176,8 @@ struct crypto_async_request;
struct crypto_tfm; struct crypto_tfm;
struct crypto_type; struct crypto_type;
typedef struct crypto_async_request crypto_completion_data_t; typedef void crypto_completion_data_t;
typedef void (*crypto_completion_t)(struct crypto_async_request *req, int err); typedef void (*crypto_completion_t)(void *req, int err);
/** /**
* DOC: Block Cipher Context Data Structures * DOC: Block Cipher Context Data Structures
...@@ -596,12 +596,12 @@ struct crypto_wait { ...@@ -596,12 +596,12 @@ struct crypto_wait {
/* /*
* Async ops completion helper functioons * 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) static inline int crypto_wait_req(int err, struct crypto_wait *wait)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment