of: Feed entire flattened device tree into the random pool
authorAnton Blanchard <anton@samba.org>
Mon, 29 Jul 2013 03:11:50 +0000 (13:11 +1000)
committerGrant Likely <grant.likely@linaro.org>
Fri, 30 Aug 2013 10:34:34 +0000 (11:34 +0100)
We feed the entire DMI table into the random pool to provide
better random data during early boot, so do the same with the
flattened device tree.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Grant Likely <grant.likely@linaro.org>
drivers/of/fdt.c

index 4c5ee96bf48719a1d29d8fd4b8b36fef636b0efa..543c5002831ec8a433e8ebf348487ae69cfedc93 100644 (file)
@@ -18,6 +18,7 @@
 #include <linux/string.h>
 #include <linux/errno.h>
 #include <linux/slab.h>
+#include <linux/random.h>
 
 #include <asm/setup.h>  /* for COMMAND_LINE_SIZE */
 #ifdef CONFIG_PPC
@@ -726,3 +727,14 @@ void __init unflatten_device_tree(void)
 }
 
 #endif /* CONFIG_OF_EARLY_FLATTREE */
+
+/* Feed entire flattened device tree into the random pool */
+static int __init add_fdt_randomness(void)
+{
+       if (initial_boot_params)
+               add_device_randomness(initial_boot_params,
+                               be32_to_cpu(initial_boot_params->totalsize));
+
+       return 0;
+}
+core_initcall(add_fdt_randomness);