[CRYPTO] api: Feed flag directly to crypto_yield
The sleeping flag used to determine whether crypto_yield can actually
yield is really a per-operation flag rather than a per-tfm flag. This
patch changes crypto_yield to take a flag directly so that we can start
using a per-operation flag instead the tfm flag.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
diff --git a/crypto/cipher.c b/crypto/cipher.c
index aebc4a2..f573c59 100644
--- a/crypto/cipher.c
+++ b/crypto/cipher.c
@@ -145,7 +145,7 @@
if (!nbytes)
break;
- crypto_yield(tfm);
+ crypto_yield(tfm->crt_flags);
}
if (buffer)
diff --git a/crypto/digest.c b/crypto/digest.c
index 19e7556..96244a5 100644
--- a/crypto/digest.c
+++ b/crypto/digest.c
@@ -55,7 +55,7 @@
tfm->__crt_alg->cra_digest.dia_update(tfm, p,
bytes_from_page);
crypto_kunmap(src, 0);
- crypto_yield(tfm);
+ crypto_yield(tfm->crt_flags);
offset = 0;
pg++;
l -= bytes_from_page;
diff --git a/crypto/internal.h b/crypto/internal.h
index b110b97..7dc04ef 100644
--- a/crypto/internal.h
+++ b/crypto/internal.h
@@ -67,9 +67,9 @@
kunmap_atomic(vaddr, crypto_kmap_type(out));
}
-static inline void crypto_yield(struct crypto_tfm *tfm)
+static inline void crypto_yield(u32 flags)
{
- if (tfm->crt_flags & CRYPTO_TFM_REQ_MAY_SLEEP)
+ if (flags & CRYPTO_TFM_REQ_MAY_SLEEP)
cond_resched();
}