lkml.org 
[lkml]   [2003]   [Aug]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] cryptoapi: Fix sleeping
On Wed, Aug 13, 2003 at 05:44:36PM -0700, Andrew Morton wrote:
> Jeff Garzik <jgarzik@pobox.com> 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() ?
> >
>
> in_atomic() returns false inside spin_lock() on non-preemptive kernels.
>
> Either this code needs to be removed altogether or it should be changed to
>
> BUG_ON(in_atomic());
> cond_resched();
>
> and the callers should be fixed up.

Cryptoapi probably needs a flag for skipping the yield. I'll look into it.

--
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/

\
 
 \ /
  Last update: 2005-03-22 13:47    [W:0.087 / U:29.148 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site