diff options
| author | James Morris <james.l.morris@oracle.com> | 2014-01-06 22:23:01 +1100 |
|---|---|---|
| committer | James Morris <james.l.morris@oracle.com> | 2014-01-06 22:23:01 +1100 |
| commit | 38fd2c202a3d82bc12430bce5789fa2c2a406f71 (patch) | |
| tree | a73513dbb015155f5236b391709b9083916b3136 /include/linux/random.h | |
| parent | dcf4e392867bf98d50ad108ed7c2bfb941e8c33d (diff) | |
| parent | d6e0a2dd12f4067a5bcefb8bbd8ddbeff800afbc (diff) | |
Merge to v3.13-rc7 for prerequisite changes in the Xen code for TPM
Diffstat (limited to 'include/linux/random.h')
| -rw-r--r-- | include/linux/random.h | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/include/linux/random.h b/include/linux/random.h index 3b9377d6b7a5..4002b3df4c85 100644 --- a/include/linux/random.h +++ b/include/linux/random.h @@ -17,6 +17,7 @@ extern void add_interrupt_randomness(int irq, int irq_flags); extern void get_random_bytes(void *buf, int nbytes); extern void get_random_bytes_arch(void *buf, int nbytes); void generate_random_uuid(unsigned char uuid_out[16]); +extern int random_int_secret_init(void); #ifndef MODULE extern const struct file_operations random_fops, urandom_fops; @@ -28,8 +29,13 @@ unsigned long randomize_range(unsigned long start, unsigned long end, unsigned l u32 prandom_u32(void); void prandom_bytes(void *buf, int nbytes); void prandom_seed(u32 seed); +void prandom_reseed_late(void); -u32 prandom_u32_state(struct rnd_state *); +struct rnd_state { + __u32 s1, s2, s3, s4; +}; + +u32 prandom_u32_state(struct rnd_state *state); void prandom_bytes_state(struct rnd_state *state, void *buf, int nbytes); /* @@ -49,9 +55,10 @@ static inline void prandom_seed_state(struct rnd_state *state, u64 seed) { u32 i = (seed >> 32) ^ (seed << 10) ^ seed; - state->s1 = __seed(i, 1); - state->s2 = __seed(i, 7); - state->s3 = __seed(i, 15); + state->s1 = __seed(i, 2U); + state->s2 = __seed(i, 8U); + state->s3 = __seed(i, 16U); + state->s4 = __seed(i, 128U); } #ifdef CONFIG_ARCH_RANDOM |
