[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <9182932.rX0DhQWPrJ@tachyon.chronox.de>
Date: Thu, 21 May 2015 09:55:17 +0200
From: Stephan Mueller <smueller@...onox.de>
To: Herbert Xu <herbert@...dor.apana.org.au>
Cc: pebolle@...cali.nl, andreas.steffen@...ongswan.org, tytso@....edu,
sandyinchina@...il.com, linux-crypto@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v9 3/5] crypto: drbg - add async seeding operation
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-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists