aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char/random.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/char/random.c')
-rw-r--r--drivers/char/random.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/char/random.c b/drivers/char/random.c
index 4e2627a8d226..d057438266bb 100644
--- a/drivers/char/random.c
+++ b/drivers/char/random.c
@@ -1458,12 +1458,16 @@ random_read(struct file *file, char __user *buf, size_t nbytes, loff_t *ppos)
1458static ssize_t 1458static ssize_t
1459urandom_read(struct file *file, char __user *buf, size_t nbytes, loff_t *ppos) 1459urandom_read(struct file *file, char __user *buf, size_t nbytes, loff_t *ppos)
1460{ 1460{
1461 static int maxwarn = 10;
1461 int ret; 1462 int ret;
1462 1463
1463 if (unlikely(nonblocking_pool.initialized == 0)) 1464 if (unlikely(nonblocking_pool.initialized == 0) &&
1464 printk_once(KERN_NOTICE "random: %s urandom read " 1465 maxwarn > 0) {
1465 "with %d bits of entropy available\n", 1466 maxwarn--;
1466 current->comm, nonblocking_pool.entropy_total); 1467 printk(KERN_NOTICE "random: %s: uninitialized urandom read "
1468 "(%zd bytes read, %d bits of entropy available)\n",
1469 current->comm, nbytes, nonblocking_pool.entropy_total);
1470 }
1467 1471
1468 nbytes = min_t(size_t, nbytes, INT_MAX >> (ENTROPY_SHIFT + 3)); 1472 nbytes = min_t(size_t, nbytes, INT_MAX >> (ENTROPY_SHIFT + 3));
1469 ret = extract_entropy_user(&nonblocking_pool, buf, nbytes); 1473 ret = extract_entropy_user(&nonblocking_pool, buf, nbytes);