@@ -1140,11 +1140,7 @@ static bool crng_init_try_arch(struct crng_state *crng)
unsigned long rv;
for (i = 4; i < 16; i++) {
- if (!arch_get_random_seed_long(&rv) &&
- !arch_get_random_long(&rv)) {
- rv = random_get_entropy();
- arch_init = false;
- }
+ get_source_long(&rv) ;
crng->state[i] ^= rv;
}
@@ -1158,11 +1154,7 @@ static bool __init crng_init_try_arch_early(void)
unsigned long rv;
for (i = 4; i < 16; i++) {
- if (!arch_get_random_seed_long_early(&rv) &&
- !arch_get_random_long_early(&rv)) {
- rv = random_get_entropy();
- arch_init = false;
- }
+ get_source_long(&rv) ;
primary_crng.state[i] ^= rv;
}
@@ -1341,7 +1333,7 @@ static int crng_slow_load(const u8 *cp, size_t len)
static void crng_reseed(struct crng_state *crng, bool use_input_pool)
{
- unsigned long flags;
+ unsigned long flags, rv;
int i, num;
union {
u8 block[CHACHA_BLOCK_SIZE];
@@ -1359,10 +1351,7 @@ static void crng_reseed(struct crng_state
*crng, bool use_input_pool)
}
spin_lock_irqsave(&crng->lock, flags);
for (i = 0; i < 8; i++) {
- unsigned long rv;
- if (!arch_get_random_seed_long(&rv) &&
- !arch_get_random_long(&rv))
- rv = random_get_entropy();
+ get_source_long(&rv) ;
crng->state[i + 4] ^= buf.key[i] ^ rv;
}
Replace arch_get_random_long()/random_get_entropy() sequences with get_source_long(). Signed-off-by: Sandy Harris <sandyinchina@gmail.com> --- drivers/char/random.c | 34 +++++++++------------------------- 1 file changed, 9 insertions(+), 25 deletions(-) memzero_explicit(&buf, sizeof(buf)); @@ -1728,6 +1717,7 @@ static void extract_buf(u8 *out) u8 hash[BLAKE2S_HASH_SIZE]; unsigned long *salt; unsigned long flags; + unsigned long v ; blake2s_init(&state, sizeof(hash)); @@ -1737,10 +1727,8 @@ static void extract_buf(u8 *out) */ for (salt = (unsigned long *)&state.h[4]; salt < (unsigned long *)&state.h[8]; ++salt) { - unsigned long v; - if (!arch_get_random_long(&v)) - break; - *salt ^= v; + get_source_long(&v) ; + *salt ^= v ; } /* Generate a hash across the pool */ @@ -2037,9 +2025,7 @@ int __must_check get_random_bytes_arch(void *buf, int nbytes) unsigned long v; int chunk = min_t(int, left, sizeof(unsigned long)); - if (!arch_get_random_long(&v)) - break; - + get_source_long(&v) ; memcpy(p, &v, chunk); p += chunk; left -= chunk; @@ -2064,9 +2050,7 @@ static void __init init_std_data(void) mix_pool_bytes(&now, sizeof(now)); for (i = POOL_BYTES; i > 0; i -= sizeof(rv)) { - if (!arch_get_random_seed_long(&rv) && - !arch_get_random_long(&rv)) - rv = random_get_entropy(); + get_source_long(&rv) ; mix_pool_bytes(&rv, sizeof(rv)); } mix_pool_bytes(utsname(), sizeof(*(utsname())));