Messages in this thread | | | Date | Tue, 8 Mar 2005 02:14:31 +0300 | From | Evgeniy Polyakov <> | Subject | Re: [8/many] acrypto: crypto_dev.c |
| |
On Mon, 7 Mar 2005 14:40:52 -0800 Nish Aravamudan <nish.aravamudan@gmail.com> wrote:
> On Mon, 7 Mar 2005 23:37:34 +0300, Evgeniy Polyakov <johnpol@2ka.mipt.ru> wrote: > > --- /tmp/empty/crypto_dev.c 1970-01-01 03:00:00.000000000 +0300 > > +++ ./acrypto/crypto_dev.c 2005-03-07 20:35:36.000000000 +0300 > > @@ -0,0 +1,421 @@ > > +/* > > + * crypto_dev.c > > <snip> > > > + while (atomic_read(&__dev->refcnt)) { > > + > > + dprintk(KERN_INFO "Waiting for %s to become free: refcnt=%d.\n", > > + __dev->name, atomic_read(&dev->refcnt)); > > + > > + /* > > + * Hack zone: you need to write good ->data_ready() > > + * and crypto device driver itself. > > + * > > + * Driver shoud not buzz if it has pending sessions > > + * in it's queue and it was removed from global device list. > > + * > > + * Although I can workaround it here, for example by > > + * flushing the whole queue and drop all pending sessions. > > + */ > > + > > + __dev->data_ready(__dev); > > + set_current_state(TASK_UNINTERRUPTIBLE); > > + schedule_timeout(HZ); > > I don't see any wait-queues in the immediate area of this code. Can > this be an ssleep(1)?
Yes, you are right, this loop just spins until all pending sessions are removed from given crypto device, so it can just ssleep(1) here.
> Thanks, > Nish
Evgeniy Polyakov
Only failure makes us experts. -- Theo de Raadt - 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/
| |