Re: [PATCH v9 3/5] crypto: drbg - add async seeding operation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am Donnerstag, 21. Mai 2015, 05:44:08 schrieb Herbert Xu:

Hi Herbert,

> On Wed, May 20, 2015 at 10:03:45PM +0200, Stephan Mueller wrote:
> >> @@ -1487,6 +1514,7 @@ unlock:
> >   */
> >  
> >  static int drbg_uninstantiate(struct drbg_state *drbg)
> >  {
> > 
> > +	cancel_work_sync(&drbg->seed_work);
> 
> This will just block until the work is done, i.e., until the
> pool is ready.  It's no different to an uninterruptible sleep.
> 
> So either just do an uninterruptible sleep, or allow the async
> seed to fail.

I think I found the issue: we cannot put interruptible and noninterruptible 
sleeps onto the same wait queue. With my initial tests, I put the 
uninterruptible sleep onto urandom_init_wait where also interruptible sleeps 
are put onto.

So, I will create a 2nd wait queue in random.c for uninterruptible waits, 
change the get_blocking_random_bytes back to void and use wait_event to wait 
for the initialization.
> 
> Cheers,


-- 
Ciao
Stephan
--
To unsubscribe from this list: send the line "unsubscribe linux-crypto" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Kernel]     [Gnu Classpath]     [Gnu Crypto]     [DM Crypt]     [Netfilter]     [Bugtraq]

  Powered by Linux