diff options
| author | Ingo Molnar <mingo@elte.hu> | 2009-05-11 14:44:27 +0200 | 
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2009-05-11 14:44:31 +0200 | 
| commit | 41fb454ebe6024f5c1e3b3cbc0abc0da762e7b51 (patch) | |
| tree | 51c50bcb67a5039448ddfa1869d7948cab1217e9 /drivers/char/random.c | |
| parent | 19c1a6f5764d787113fa323ffb18be7991208f82 (diff) | |
| parent | 091bf7624d1c90cec9e578a18529f615213ff847 (diff) | |
Merge commit 'v2.6.30-rc5' into core/iommu
Merge reason: core/iommu was on an .30-rc1 base,
              update it to .30-rc5 to refresh.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'drivers/char/random.c')
| -rw-r--r-- | drivers/char/random.c | 19 | 
1 files changed, 12 insertions, 7 deletions
diff --git a/drivers/char/random.c b/drivers/char/random.c index f824ef8a927..b2ced39d76b 100644 --- a/drivers/char/random.c +++ b/drivers/char/random.c @@ -1665,15 +1665,20 @@ EXPORT_SYMBOL(secure_dccp_sequence_number);   * value is not cryptographically secure but for several uses the cost of   * depleting entropy is too high   */ +DEFINE_PER_CPU(__u32 [4], get_random_int_hash);  unsigned int get_random_int(void)  { -	/* -	 * Use IP's RNG. It suits our purpose perfectly: it re-keys itself -	 * every second, from the entropy pool (and thus creates a limited -	 * drain on it), and uses halfMD4Transform within the second. We -	 * also mix it with jiffies and the PID: -	 */ -	return secure_ip_id((__force __be32)(current->pid + jiffies)); +	struct keydata *keyptr; +	__u32 *hash = get_cpu_var(get_random_int_hash); +	int ret; + +	keyptr = get_keyptr(); +	hash[0] += current->pid + jiffies + get_cycles() + (int)(long)&ret; + +	ret = half_md4_transform(hash, keyptr->secret); +	put_cpu_var(get_random_int_hash); + +	return ret;  }  /*  | 
