aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/crypto/algapi.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/include/crypto/algapi.h b/include/crypto/algapi.h
index ebe4ded0c55d..436c4c2683c7 100644
--- a/include/crypto/algapi.h
+++ b/include/crypto/algapi.h
@@ -360,13 +360,18 @@ static inline struct crypto_alg *crypto_get_attr_alg(struct rtattr **tb,
360 return crypto_attr_alg(tb[1], type, mask); 360 return crypto_attr_alg(tb[1], type, mask);
361} 361}
362 362
363static inline int crypto_requires_off(u32 type, u32 mask, u32 off)
364{
365 return (type ^ off) & mask & off;
366}
367
363/* 368/*
364 * Returns CRYPTO_ALG_ASYNC if type/mask requires the use of sync algorithms. 369 * Returns CRYPTO_ALG_ASYNC if type/mask requires the use of sync algorithms.
365 * Otherwise returns zero. 370 * Otherwise returns zero.
366 */ 371 */
367static inline int crypto_requires_sync(u32 type, u32 mask) 372static inline int crypto_requires_sync(u32 type, u32 mask)
368{ 373{
369 return (type ^ CRYPTO_ALG_ASYNC) & mask & CRYPTO_ALG_ASYNC; 374 return crypto_requires_off(type, mask, CRYPTO_ALG_ASYNC);
370} 375}
371 376
372noinline unsigned long __crypto_memneq(const void *a, const void *b, size_t size); 377noinline unsigned long __crypto_memneq(const void *a, const void *b, size_t size);