| From foo@baz Thu Jun 16 06:59:24 PM CEST 2022 |
| From: Eric Biggers <ebiggers@google.com> |
| Date: Sun, 21 Mar 2021 22:14:00 -0700 |
| Subject: random: remove dead code left over from blocking pool |
| |
| From: Eric Biggers <ebiggers@google.com> |
| |
| commit 118a4417e14348b2e46f5e467da8444ec4757a45 upstream. |
| |
| Remove some dead code that was left over following commit 90ea1c6436d2 |
| ("random: remove the blocking pool"). |
| |
| Cc: linux-crypto@vger.kernel.org |
| Cc: Andy Lutomirski <luto@kernel.org> |
| Cc: Jann Horn <jannh@google.com> |
| Cc: Theodore Ts'o <tytso@mit.edu> |
| Reviewed-by: Andy Lutomirski <luto@kernel.org> |
| Acked-by: Ard Biesheuvel <ardb@kernel.org> |
| Signed-off-by: Eric Biggers <ebiggers@google.com> |
| Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> |
| Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/char/random.c | 17 +------- |
| include/trace/events/random.h | 83 ------------------------------------------ |
| 2 files changed, 3 insertions(+), 97 deletions(-) |
| |
| --- a/drivers/char/random.c |
| +++ b/drivers/char/random.c |
| @@ -503,7 +503,6 @@ struct entropy_store { |
| unsigned short add_ptr; |
| unsigned short input_rotate; |
| int entropy_count; |
| - unsigned int initialized:1; |
| unsigned int last_data_init:1; |
| __u8 last_data[EXTRACT_SIZE]; |
| }; |
| @@ -663,7 +662,7 @@ static void process_random_ready_list(vo |
| */ |
| static void credit_entropy_bits(struct entropy_store *r, int nbits) |
| { |
| - int entropy_count, orig, has_initialized = 0; |
| + int entropy_count, orig; |
| const int pool_size = r->poolinfo->poolfracbits; |
| int nfrac = nbits << ENTROPY_SHIFT; |
| |
| @@ -720,23 +719,14 @@ retry: |
| if (cmpxchg(&r->entropy_count, orig, entropy_count) != orig) |
| goto retry; |
| |
| - if (has_initialized) { |
| - r->initialized = 1; |
| - kill_fasync(&fasync, SIGIO, POLL_IN); |
| - } |
| - |
| trace_credit_entropy_bits(r->name, nbits, |
| entropy_count >> ENTROPY_SHIFT, _RET_IP_); |
| |
| if (r == &input_pool) { |
| int entropy_bits = entropy_count >> ENTROPY_SHIFT; |
| |
| - if (crng_init < 2) { |
| - if (entropy_bits < 128) |
| - return; |
| + if (crng_init < 2 && entropy_bits >= 128) |
| crng_reseed(&primary_crng, r); |
| - entropy_bits = ENTROPY_BITS(r); |
| - } |
| } |
| } |
| |
| @@ -1442,8 +1432,7 @@ retry: |
| } |
| |
| /* |
| - * This function does the actual extraction for extract_entropy and |
| - * extract_entropy_user. |
| + * This function does the actual extraction for extract_entropy. |
| * |
| * Note: we assume that .poolwords is a multiple of 16 words. |
| */ |
| --- a/include/trace/events/random.h |
| +++ b/include/trace/events/random.h |
| @@ -84,28 +84,6 @@ TRACE_EVENT(credit_entropy_bits, |
| __entry->entropy_count, (void *)__entry->IP) |
| ); |
| |
| -TRACE_EVENT(push_to_pool, |
| - TP_PROTO(const char *pool_name, int pool_bits, int input_bits), |
| - |
| - TP_ARGS(pool_name, pool_bits, input_bits), |
| - |
| - TP_STRUCT__entry( |
| - __field( const char *, pool_name ) |
| - __field( int, pool_bits ) |
| - __field( int, input_bits ) |
| - ), |
| - |
| - TP_fast_assign( |
| - __entry->pool_name = pool_name; |
| - __entry->pool_bits = pool_bits; |
| - __entry->input_bits = input_bits; |
| - ), |
| - |
| - TP_printk("%s: pool_bits %d input_pool_bits %d", |
| - __entry->pool_name, __entry->pool_bits, |
| - __entry->input_bits) |
| -); |
| - |
| TRACE_EVENT(debit_entropy, |
| TP_PROTO(const char *pool_name, int debit_bits), |
| |
| @@ -160,35 +138,6 @@ TRACE_EVENT(add_disk_randomness, |
| MINOR(__entry->dev), __entry->input_bits) |
| ); |
| |
| -TRACE_EVENT(xfer_secondary_pool, |
| - TP_PROTO(const char *pool_name, int xfer_bits, int request_bits, |
| - int pool_entropy, int input_entropy), |
| - |
| - TP_ARGS(pool_name, xfer_bits, request_bits, pool_entropy, |
| - input_entropy), |
| - |
| - TP_STRUCT__entry( |
| - __field( const char *, pool_name ) |
| - __field( int, xfer_bits ) |
| - __field( int, request_bits ) |
| - __field( int, pool_entropy ) |
| - __field( int, input_entropy ) |
| - ), |
| - |
| - TP_fast_assign( |
| - __entry->pool_name = pool_name; |
| - __entry->xfer_bits = xfer_bits; |
| - __entry->request_bits = request_bits; |
| - __entry->pool_entropy = pool_entropy; |
| - __entry->input_entropy = input_entropy; |
| - ), |
| - |
| - TP_printk("pool %s xfer_bits %d request_bits %d pool_entropy %d " |
| - "input_entropy %d", __entry->pool_name, __entry->xfer_bits, |
| - __entry->request_bits, __entry->pool_entropy, |
| - __entry->input_entropy) |
| -); |
| - |
| DECLARE_EVENT_CLASS(random__get_random_bytes, |
| TP_PROTO(int nbytes, unsigned long IP), |
| |
| @@ -252,38 +201,6 @@ DEFINE_EVENT(random__extract_entropy, ex |
| TP_ARGS(pool_name, nbytes, entropy_count, IP) |
| ); |
| |
| -DEFINE_EVENT(random__extract_entropy, extract_entropy_user, |
| - TP_PROTO(const char *pool_name, int nbytes, int entropy_count, |
| - unsigned long IP), |
| - |
| - TP_ARGS(pool_name, nbytes, entropy_count, IP) |
| -); |
| - |
| -TRACE_EVENT(random_read, |
| - TP_PROTO(int got_bits, int need_bits, int pool_left, int input_left), |
| - |
| - TP_ARGS(got_bits, need_bits, pool_left, input_left), |
| - |
| - TP_STRUCT__entry( |
| - __field( int, got_bits ) |
| - __field( int, need_bits ) |
| - __field( int, pool_left ) |
| - __field( int, input_left ) |
| - ), |
| - |
| - TP_fast_assign( |
| - __entry->got_bits = got_bits; |
| - __entry->need_bits = need_bits; |
| - __entry->pool_left = pool_left; |
| - __entry->input_left = input_left; |
| - ), |
| - |
| - TP_printk("got_bits %d still_needed_bits %d " |
| - "blocking_pool_entropy_left %d input_entropy_left %d", |
| - __entry->got_bits, __entry->got_bits, __entry->pool_left, |
| - __entry->input_left) |
| -); |
| - |
| TRACE_EVENT(urandom_read, |
| TP_PROTO(int got_bits, int pool_left, int input_left), |
| |