On Mon, 7 Mar 2005 17:46:41 -0800 Nishanth Aravamudan <[EMAIL PROTECTED]> wrote:
> On Tue, Mar 08, 2005 at 02:27:20AM +0300, Evgeniy Polyakov wrote: > > On Mon, 7 Mar 2005 14:51:21 -0800 > > Nish Aravamudan <[EMAIL PROTECTED]> wrote: > > > > > On Tue, 8 Mar 2005 02:14:31 +0300, Evgeniy Polyakov <[EMAIL PROTECTED]> > > > wrote: > > > > On Mon, 7 Mar 2005 14:40:52 -0800 > > > > Nish Aravamudan <[EMAIL PROTECTED]> wrote: > > > > > > > > > On Mon, 7 Mar 2005 23:37:34 +0300, Evgeniy Polyakov <[EMAIL > > > > > PROTECTED]> 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)) { > > > > > > <snip> > > > > > > > > > + > > > > > > 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. > > > > > > Would you like me to send an incremental patch or will you be changing > > > it yourself? > > > > That would be nice to see your changes in the acrypto. > > If it will be commited... > > Well, here is an incremental patch, then: > > Description: Use ssleep() instead of schedule_timeout() to guarantee the > task delays as expected. > > Signed-off-by: Nishanth Aravamudan <[EMAIL PROTECTED]> > Thank you, I've applied it to my tree. > --- 2.6.11-v/acrypto/crypto_dev.c 2005-03-07 17:41:31.000000000 -0800 > +++ 2.6.11/acrypto/crypto_dev.c 2005-03-07 17:41:57.000000000 -0800 > @@ -28,6 +28,7 @@ > #include <linux/interrupt.h> > #include <linux/spinlock.h> > #include <linux/device.h> > +#include <linux/delay.h> > > #include "acrypto.h" > > @@ -399,8 +400,7 @@ void crypto_device_remove(struct crypto_ > */ > > __dev->data_ready(__dev); > - set_current_state(TASK_UNINTERRUPTIBLE); > - schedule_timeout(HZ); > + ssleep(1); > } > > dprintk(KERN_ERR "Crypto device %s was unregistered.\n", 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 [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/