crypto: api - Optimise away crypto_yield when hard preemption is on
authorHerbert Xu <herbert@gondor.apana.org.au>
Tue, 12 Jul 2016 05:17:56 +0000 (13:17 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Mon, 18 Jul 2016 09:35:49 +0000 (17:35 +0800)
When hard preemption is enabled there is no need to explicitly
call crypto_yield.  This patch eliminates it if that is the case.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
include/crypto/algapi.h

index 0483f65..8637cdf 100644 (file)
@@ -442,8 +442,10 @@ static inline int crypto_memneq(const void *a, const void *b, size_t size)
 
 static inline void crypto_yield(u32 flags)
 {
 
 static inline void crypto_yield(u32 flags)
 {
+#if !defined(CONFIG_PREEMPT) || defined(CONFIG_PREEMPT_VOLUNTARY)
        if (flags & CRYPTO_TFM_REQ_MAY_SLEEP)
                cond_resched();
        if (flags & CRYPTO_TFM_REQ_MAY_SLEEP)
                cond_resched();
+#endif
 }
 
 #endif /* _CRYPTO_ALGAPI_H */
 }
 
 #endif /* _CRYPTO_ALGAPI_H */