Re: [PATCH] cryptoapi: Fix sleeping

From: Jeff Garzik
Date: Wed Aug 13 2003 - 19:25:26 EST


Matt Mackall wrote:
We need in_atomic() so that we can call from regions where preempt is
disabled, for instance when using per_cpu crypto tfms.

diff -urN -X dontdiff orig/crypto/internal.h work/crypto/internal.h
--- orig/crypto/internal.h 2003-07-13 22:29:11.000000000 -0500
+++ work/crypto/internal.h 2003-08-12 14:38:54.000000000 -0500
@@ -37,7 +37,7 @@
static inline void crypto_yield(struct crypto_tfm *tfm)
{
- if (!in_softirq())
+ if (!in_atomic())
cond_resched();


Do you really want to schedule inside preempt_disable() ?

As an aside, I think it would be nice if cond_resched could figure out for itself whether it is ok to schedule(). Completely eliminate the above test entirely, moving it into cond_resched().

Jeff



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/