[PATCH 0/4] random: improve entropy pool initialization at boot time

From: Theodore Ts'o
Date: Sun Nov 03 2013 - 08:33:51 EST


These patches improve how /dev/random initializes its entropy pool
during the kernel boot sequence. With these changes, using an x86 test
kernel run under KVM, the urandom pool gets initialized before the init
scripts start running, and of the kernel users of get_random_bytes(), a
debugging printk found only two users of get_random_bytes() before the
nonblocking pool could be fully initialized:

rc80211_minstrel_ht_init+0x2b/0x6a called get_random_bytes with 22 bits of entropy available
neigh_hash_alloc+0x82/0x94 called get_random_bytes with 31 bits of entropy available

Both of these calls were in a subsys_initcall(); and the first one I'm
fairly certain could be replaced by the use of prandom_u32().

Note: I've cc'ed these patches to linux-crypto so hopefully more people
will review these patches.

- Ted

Theodore Ts'o (4):
random: use device attach events for entropy
random: make add_timer_randomness() fill the nonblocking pool first
random: printk notifications for urandom pool initialization
random: don't zap entropy count in rand_initialize()

drivers/base/core.c | 3 +++
drivers/char/random.c | 42 +++++++++++++++++++++++++++++++-----------
include/linux/random.h | 2 ++
3 files changed, 36 insertions(+), 11 deletions(-)

--
1.7.12.rc0.22.gcdd159b

--
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/