Skip to content

Commit

Permalink
crypto: atmel-aes - fix atmel_aes_handle_queue()
Browse files Browse the repository at this point in the history
This patch fixes the value returned by atmel_aes_handle_queue(), which
could have been wrong previously when the crypto request was started
synchronously but became asynchronous during the ctx->start() call.

Signed-off-by: Cyrille Pitchen <cyrille.pitchen@atmel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
  • Loading branch information
Cyrille Pitchen authored and Herbert Xu committed Feb 3, 2017
1 parent 81d8750 commit a1f613f
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions drivers/crypto/atmel-aes.c
Original file line number Diff line number Diff line change
Expand Up @@ -879,6 +879,7 @@ static int atmel_aes_handle_queue(struct atmel_aes_dev *dd,
struct crypto_async_request *areq, *backlog;
struct atmel_aes_base_ctx *ctx;
unsigned long flags;
bool start_async;
int err, ret = 0;

spin_lock_irqsave(&dd->lock, flags);
Expand All @@ -904,10 +905,12 @@ static int atmel_aes_handle_queue(struct atmel_aes_dev *dd,

dd->areq = areq;
dd->ctx = ctx;
dd->is_async = (areq != new_areq);
start_async = (areq != new_areq);
dd->is_async = start_async;

/* WARNING: ctx->start() MAY change dd->is_async. */
err = ctx->start(dd);
return (dd->is_async) ? ret : err;
return (start_async) ? ret : err;
}


Expand Down

0 comments on commit a1f613f

Please sign in to comment.