crypto: tcrypt - Do not bail on EINPROGRESS in multibuffer hash test

From: Herbert Xu
Date: Wed Jun 29 2016 - 23:00:26 EST


On Wed, Jun 29, 2016 at 10:45:56AM -0700, Megha Dey wrote:
> I tested the latest cryptodev tree on my haswell machine and this is
> what I see:
> [ 40.402834] modprobe tcrypt mode=422
> [ 40.403105] testing speed of multibuffer sha1 (sha1_mb)
> [ 40.403108] test 0 ( 16 byte blocks, 16 bytes per update, 1
> updates): 32271 cycles/operation, 252 cycles/byte
> [ 40.403118] At least one hashing failed ret=-115
> [ 43.218712] modprobe tcrypt mode=423
> [ 43.218712] testing speed of multibuffer sha256 (sha256_mb)
> [ 43.218715] test 0 ( 16 byte blocks, 16 bytes per update, 1
> updates): 106965 cycles/operation, 835 cycles/byte
> [ 43.218747] At least one hashing failed ret=-115
> [ 45.346657] modprobe tcrypt mode=424
> [ 45.346657] testing speed of multibuffer sha512 (sha512_mb)
> [ 45.346660] test 0 ( 16 byte blocks, 16 bytes per update, 1
> updates): 43179 cycles/operation, 337 cycles/byte
> [ 45.346673] At least one hashing failed ret=-115
>
> Don't think this is expected, is it?

No that's not right. Does this patch fix it?

Thanks!

---8<---
The multibuffer hash speed test is incorrectly bailing because
of an EINPROGRESS return value. This patch fixes it by setting
ret to zero if it is equal to -EINPROGRESS.

Reported-by: Megha Dey <megha.dey@xxxxxxxxxxxxxxx>
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>

diff --git a/crypto/tcrypt.c b/crypto/tcrypt.c
index 8a91dc3..202cfa1 100644
--- a/crypto/tcrypt.c
+++ b/crypto/tcrypt.c
@@ -655,8 +486,10 @@ static void test_mb_ahash_speed(const char *algo, unsigned int sec,

for (k = 0; k < 8; k++) {
ret = crypto_ahash_digest(data[k].req);
- if (ret == -EINPROGRESS)
+ if (ret == -EINPROGRESS) {
+ ret = 0;
continue;
+ }

if (ret)
break;
--
Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt