summaryrefslogtreecommitdiff
path: root/crypto
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2005-05-23 12:36:25 -0700
committerDavid S. Miller <davem@davemloft.net>2005-05-23 12:36:25 -0700
commit67e686b0a844984e4fc38f7f69e3c0a9872f4fc1 (patch)
tree70eb2145b4159153e9bbf048e214cafe839aec73 /crypto
parent63979e2a460e369e92d16f8db96b73e8ccef9724 (diff)
downloadlinux-crypto-67e686b0a844984e4fc38f7f69e3c0a9872f4fc1.tar.gz
linux-crypto-67e686b0a844984e4fc38f7f69e3c0a9872f4fc1.zip
[CRYPTO]: Only reschedule if !in_atomic()
The netlink gfp_any() problem made me double-check the uses of in_softirq() in crypto/*. It seems to me that we should be checking in_atomic() instead of in_softirq() in crypto_yield. Otherwise people calling the crypto ops with spin locks held or preemption disabled will get burnt, right? Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'crypto')
-rw-r--r--crypto/internal.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/crypto/internal.h b/crypto/internal.h
index e68e4388..964b9a60 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();
}