EFI has a rather unique benefit that it has access to some limited non-volatile storage, where the kernel can store a random seed. This series wires that up, with EFISTUB reading the seed and passing it to the kernel, and with the kernel writing a new seed when the RNG is initialized. Patches 1 and 2 are to go through Ard's EFI tree, while patches 3, 4, and 5 are to go through my RNG tree. Jason A. Donenfeld (5): efi: vars: prohibit reading random seed variables efi: stub: use random seed from EFI variable random: add back async readiness notifier vsprintf: initialize siphash key using notifier efi: random: refresh non-volatile random seed when RNG is initialized drivers/char/random.c | 20 +++++++++ drivers/firmware/efi/efi.c | 19 +++++++++ drivers/firmware/efi/libstub/random.c | 59 +++++++++++++++++++++------ fs/efivarfs/inode.c | 4 ++ fs/efivarfs/super.c | 3 ++ include/linux/efi.h | 1 + include/linux/random.h | 1 + lib/vsprintf.c | 14 +++---- 8 files changed, 100 insertions(+), 21 deletions(-) -- 2.38.1