| From 016df0abc56ec06d0c63c5318ef53e40738dea8b Mon Sep 17 00:00:00 2001 |
| From: Herbert Xu <herbert@gondor.apana.org.au> |
| Date: Sun, 26 Feb 2017 12:22:35 +0800 |
| Subject: crypto: api - Add crypto_requires_off helper |
| |
| From: Herbert Xu <herbert@gondor.apana.org.au> |
| |
| commit 016df0abc56ec06d0c63c5318ef53e40738dea8b upstream. |
| |
| This patch adds crypto_requires_off which is an extension of |
| crypto_requires_sync for similar bits such as NEED_FALLBACK. |
| |
| Suggested-by: Marcelo Cerri <marcelo.cerri@canonical.com> |
| Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| include/crypto/algapi.h | 7 ++++++- |
| 1 file changed, 6 insertions(+), 1 deletion(-) |
| |
| --- a/include/crypto/algapi.h |
| +++ b/include/crypto/algapi.h |
| @@ -344,13 +344,18 @@ static inline struct crypto_alg *crypto_ |
| return crypto_attr_alg(tb[1], type, mask); |
| } |
| |
| +static inline int crypto_requires_off(u32 type, u32 mask, u32 off) |
| +{ |
| + return (type ^ off) & mask & off; |
| +} |
| + |
| /* |
| * Returns CRYPTO_ALG_ASYNC if type/mask requires the use of sync algorithms. |
| * Otherwise returns zero. |
| */ |
| static inline int crypto_requires_sync(u32 type, u32 mask) |
| { |
| - return (type ^ CRYPTO_ALG_ASYNC) & mask & CRYPTO_ALG_ASYNC; |
| + return crypto_requires_off(type, mask, CRYPTO_ALG_ASYNC); |
| } |
| |
| noinline unsigned long __crypto_memneq(const void *a, const void *b, size_t size); |