On Tue, Aug 27, 2013 at 02:01:36PM +0000, Taylor R Campbell wrote: > > This is a stop-gap on a stop-gap on a stop-gap; we really ought to > back out all of these stop-gaps, make bcm2835_rng call rnd_add_data > asynchronously to work around the original symptom, and design a real > solution when we have time to sort this mess out properly.
Having slept on it -- you're right. Most of this series of changes should be backed out (a few parts are worth keeping, like the tweaks to the softint initialization). In particular, the shortcut calls to rnd_process_events should go back into the softint schedule routines, and be removed from the extract functions. Then, I think, as a better interim solution, we should: 1) Make the hardware RNGs loop, synchronously adding entropy until they've added a pool-full, at startup. 2) Make all the users of the callback interface add entropy asynchronously at startup, so early in kernel startup other RNGs are not initialized from a near-empty pool. Thor