aboutsummaryrefslogtreecommitdiffstats
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
commit15333038d577b0c0255c0f14a38d9e6895937453 (patch)
treec48106158bce4c7af328c486b7f33ad2133459ee
parent[TCP]: Fix stretch ACK performance killer when doing ucopy. (diff)
downloadlinux-dev-15333038d577b0c0255c0f14a38d9e6895937453.tar.xz
linux-dev-15333038d577b0c0255c0f14a38d9e6895937453.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>
-rw-r--r--crypto/internal.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/crypto/internal.h b/crypto/internal.h
index e68e43886d3c..964b9a60ca24 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();
}