random: add debugging code to detect early use of get_random_bytes()
authorTheodore Ts'o <tytso@mit.edu>
Sun, 3 Nov 2013 23:24:08 +0000 (18:24 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Sun, 3 Nov 2013 23:24:08 +0000 (18:24 -0500)
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
drivers/char/random.c

index 0894d86..cdf4cfb 100644 (file)
 #define SEC_XFER_SIZE          512
 #define EXTRACT_SIZE           10
 
+#define DEBUG_RANDOM_BOOT 0
+
 #define LONGS(x) (((x) + sizeof(unsigned long) - 1)/sizeof(unsigned long))
 
 /*
@@ -1177,6 +1179,13 @@ static ssize_t extract_entropy_user(struct entropy_store *r, void __user *buf,
  */
 void get_random_bytes(void *buf, int nbytes)
 {
+#if DEBUG_RANDOM_BOOT > 0
+       if (unlikely(nonblocking_pool.initialized == 0))
+               printk(KERN_NOTICE "random: %pF get_random_bytes called "
+                      "with %d bits of entropy available\n",
+                      (void *) _RET_IP_,
+                      nonblocking_pool.entropy_total);
+#endif
        trace_get_random_bytes(nbytes, _RET_IP_);
        extract_entropy(&nonblocking_pool, buf, nbytes, 0, 0);
 }