mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 11:41:38 -04:00
crypto: inside-secure - update the context and request later
This move the context and request updates at the end of the cipher and hash send() functions. This way the context and request fields are set only when everything else was successful in the send() functions. Signed-off-by: Antoine Tenart <[email protected]> Signed-off-by: Herbert Xu <[email protected]>
This commit is contained in:
parent
152bdf4cdb
commit
9785843424
2 changed files with 7 additions and 8 deletions
|
|
@ -190,8 +190,6 @@ static int safexcel_aes_send(struct crypto_async_request *async,
|
|||
int nr_src, nr_dst, n_cdesc = 0, n_rdesc = 0, queued = req->cryptlen;
|
||||
int i, ret = 0;
|
||||
|
||||
request->req = &req->base;
|
||||
|
||||
if (req->src == req->dst) {
|
||||
nr_src = dma_map_sg(priv->dev, req->src,
|
||||
sg_nents_for_len(req->src, req->cryptlen),
|
||||
|
|
@ -264,10 +262,11 @@ static int safexcel_aes_send(struct crypto_async_request *async,
|
|||
n_rdesc++;
|
||||
}
|
||||
|
||||
ctx->base.handle_result = safexcel_handle_result;
|
||||
|
||||
spin_unlock_bh(&priv->ring[ring].egress_lock);
|
||||
|
||||
request->req = &req->base;
|
||||
ctx->base.handle_result = safexcel_handle_result;
|
||||
|
||||
*commands = n_cdesc;
|
||||
*results = n_rdesc;
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -198,9 +198,6 @@ static int safexcel_ahash_send(struct crypto_async_request *async, int ring,
|
|||
len -= extra;
|
||||
}
|
||||
|
||||
request->req = &areq->base;
|
||||
ctx->base.handle_result = safexcel_handle_result;
|
||||
|
||||
spin_lock_bh(&priv->ring[ring].egress_lock);
|
||||
|
||||
/* Add a command descriptor for the cached data, if any */
|
||||
|
|
@ -291,9 +288,12 @@ send_command:
|
|||
goto cdesc_rollback;
|
||||
}
|
||||
|
||||
req->processed += len;
|
||||
spin_unlock_bh(&priv->ring[ring].egress_lock);
|
||||
|
||||
req->processed += len;
|
||||
request->req = &areq->base;
|
||||
ctx->base.handle_result = safexcel_handle_result;
|
||||
|
||||
*commands = n_cdesc;
|
||||
*results = 1;
|
||||
return 0;
|
||||
|
|
|
|||
Loading…
Reference in a new issue