Messages in this thread | | | Date | Mon, 11 May 2015 14:57:14 +0800 | From | Herbert Xu <> | Subject | Re: [PATCH v5 1/5] random: Async and sync API for accessing nonblocking_pool |
| |
On Fri, May 08, 2015 at 08:41:30AM +0200, Stephan Mueller wrote: > The added API calls provide a synchronous function call > get_blocking_random_bytes where the caller is blocked until > the nonblocking_pool is initialized. > > In addition, an asynchronous API call of get_blocking_random_bytes_cb > is provided which returns immediately to the caller after submitting > the request for random data. The caller-provided buffer that shall be > filled with random data is filled up as available entropy permits. The > caller may provide a callback function that is invoked once the > request is completed. > > A third API call, get_blocking_random_bytes_cancel, is provided to > cancel the random number gathering operation.
There are two problems with this patch:
1) The interface is way too complicated for a once off wait used only during boot. Really there is no need for cancellations.
2) There is potential for deadlock because you schedule a work that then sits around until the entropy is available. What if whatever is generating that entropy used the same work thread in future?
So I suggest instead an interface that simply schedules a work when the entropy is available.
Cheers, -- Email: Herbert Xu <herbert@gondor.apana.org.au> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
| |