On 05/06/2019 19:56, Markus Armbruster wrote: > Laurent Vivier <lviv...@redhat.com> writes: > >> On 05/06/2019 15:05, Markus Armbruster wrote: >>> Laurent Vivier <lviv...@redhat.com> writes: >>> >>>> Add a new RNG backend using QEMU builtin getrandom function. >>>> >>>> v7: rebase on master >>>> Make rng-builtin asynchronous with QEMUBH (removed existing R-b) >>> >>> Pardon the ignorant question: why is that necessary? >>> >> >> Because request_entropy() function is called while the request is not in >> the requests queue, so the loop on !QSIMPLEQ_EMPTY(&s->parent.requests) >> doens't process it. The request is added just after the call. > > In rng_backend_request_entropy(). I see. Any particular reason for > this order? "I don't know" is an acceptable answer :) >
Yes... and there is a reason: in rng_random_request_entropy(), QSIMPLEQ_EMPTY() is used to know if we have to register an fd handler with qemu_set_fd_handler(). For me, it seemed easier to use QEMUBH rather than to change the existing algorithm, as the backend has been thought to be asynchronous. Thanks, Laurent