diff --git a/crypto/internal.h b/crypto/internal.h
index e68e43886d3cc23439f30210e88b517911bf395e..964b9a60ca24413f07b1fe8410f7ac3198642135 100644
--- a/crypto/internal.h
+++ b/crypto/internal.h
@@ -38,7 +38,7 @@ static inline void crypto_kunmap(void *vaddr, int out)
 
 static inline void crypto_yield(struct crypto_tfm *tfm)
 {
-	if (!in_softirq())
+	if (!in_atomic())
 		cond_resched();
 }