Messages in this thread | | | Date | Wed, 13 Aug 2003 20:54:04 -0500 | From | Matt Mackall <> | Subject | Re: [PATCH] cryptoapi: Fix sleeping |
| |
On Wed, Aug 13, 2003 at 08:21:05PM -0400, Jeff Garzik wrote: > 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 > >+++ 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() ?
No, that's the point. Cryptoapi has hidden scheduling points and the above code is what's used to check that it doesn't do so when it ought not. But it was broken inside of no-preempt sections.
-- Matt Mackall : http://www.selenic.com : of or relating to the moon - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |