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

From: Stephan Mueller
Date: Thu May 21 2015 - 02:10:23 EST


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.
>
The cancel operation is needed as otherwise my drbg context handle will be
removed by the crypto API during the sleep. That is the whole reason why
wait_event_interruptible is used.

So, even when using an uninterruptible sleep, the crypto API has no knowledge
about it and I have to serialize the destruction code path with the async
callback.

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