Re: [PATCH] cryptoapi: Fix sleeping

From: Matt Mackall
Date: Wed Aug 13 2003 - 21:01:51 EST


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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/