From: Matt Mackall <mpm@selenic.com>
To: Andrew Morton <akpm@osdl.org>, "Theodore Ts'o" <tytso@mit.edu>
Cc: linux-kernel@vger.kernel.org
Subject: [PATCH 4/10] random pt2: re-init all pools on zero
Date: Fri, 14 Jan 2005 18:49:06 -0600 [thread overview]
Message-ID: <5.563253706@selenic.com> (raw)
In-Reply-To: <4.563253706@selenic.com>
Re-init all three pools in ioctls
Clear entropy count in init_std_data under a lock
Add kerneldoc comment
Signed-off-by: Matt Mackall <mpm@selenic.com>
Index: rnd/drivers/char/random.c
===================================================================
--- rnd.orig/drivers/char/random.c 2005-01-12 21:28:01.110374382 -0800
+++ rnd/drivers/char/random.c 2005-01-12 21:28:02.593185340 -0800
@@ -1473,16 +1473,14 @@
EXPORT_SYMBOL(get_random_bytes);
-/*********************************************************************
- *
- * Functions to interface with Linux
- *
- *********************************************************************/
-
/*
- * Initialize the random pool with standard stuff.
+ * init_std_data - initialize pool with system data
*
- * NOTE: This is an OS-dependent function.
+ * @r: pool to initialize
+ *
+ * This function clears the pool's entropy count and mixes some system
+ * data into the pool to prepare it for use. The pool is not cleared
+ * as that can only decrease the entropy in the pool.
*/
static void init_std_data(struct entropy_store *r)
{
@@ -1490,6 +1488,11 @@
__u32 words[2];
char *p;
int i;
+ unsigned long flags;
+
+ spin_lock_irqsave(&r->lock, flags);
+ r->entropy_count = 0;
+ spin_unlock_irqrestore(&r->lock, flags);
do_gettimeofday(&tv);
words[0] = tv.tv_sec;
@@ -1752,8 +1755,9 @@
/* Clear the entropy pool counters. */
if (!capable(CAP_SYS_ADMIN))
return -EPERM;
- random_state->entropy_count = 0;
init_std_data(random_state);
+ init_std_data(sec_random_state);
+ init_std_data(urandom_state);
return 0;
default:
return -EINVAL;
next prev parent reply other threads:[~2005-01-15 1:03 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-01-15 0:49 [PATCH 1/10] random pt2: cleanup waitqueue logic, fix missed wakeup Matt Mackall
2005-01-15 0:49 ` [PATCH 2/10] random pt2: kill pool clearing Matt Mackall
2005-01-15 0:49 ` [PATCH 3/10] random pt2: combine legacy ioctls Matt Mackall
2005-01-15 0:49 ` Matt Mackall [this message]
2005-01-15 0:49 ` [PATCH 5/10] random pt2: simplify initialization Matt Mackall
2005-01-15 0:49 ` [PATCH 6/10] random pt2: kill memsets of static data Matt Mackall
2005-01-15 0:49 ` [PATCH 7/10] random pt2: kill dead extract_state struct Matt Mackall
2005-01-15 0:49 ` [PATCH 8/10] random pt2: kill 2.2 compat waitqueue defs Matt Mackall
2005-01-15 0:49 ` [PATCH 9/10] random pt2: kill redundant rotate_left definitions Matt Mackall
2005-01-15 0:49 ` [PATCH 10/10] random pt2: kill misnamed log2 Matt Mackall
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5.563253706@selenic.com \
--to=mpm@selenic.com \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=tytso@mit.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.