| From foo@baz Thu Jun 16 06:59:24 PM CEST 2022 |
| From: Andy Lutomirski <luto@kernel.org> |
| Date: Mon, 23 Dec 2019 00:20:50 -0800 |
| Subject: random: delete code to pull data into pools |
| |
| From: Andy Lutomirski <luto@kernel.org> |
| |
| commit 84df7cdfbb215a34657b39f4257dab739efa2df9 upstream. |
| |
| There is no pool that pulls, so it was just dead code. |
| |
| Signed-off-by: Andy Lutomirski <luto@kernel.org> |
| Link: https://lore.kernel.org/r/4a05fe0c7a5c831389ef4aea51d24528ac8682c7.1577088521.git.luto@kernel.org |
| Signed-off-by: Theodore Ts'o <tytso@mit.edu> |
| Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/char/random.c | 40 ---------------------------------------- |
| 1 file changed, 40 deletions(-) |
| |
| --- a/drivers/char/random.c |
| +++ b/drivers/char/random.c |
| @@ -531,10 +531,8 @@ struct entropy_store { |
| const struct poolinfo *poolinfo; |
| __u32 *pool; |
| const char *name; |
| - struct entropy_store *pull; |
| |
| /* read-write data: */ |
| - unsigned long last_pulled; |
| spinlock_t lock; |
| unsigned short add_ptr; |
| unsigned short input_rotate; |
| @@ -1416,41 +1414,6 @@ EXPORT_SYMBOL_GPL(add_disk_randomness); |
| *********************************************************************/ |
| |
| /* |
| - * This utility inline function is responsible for transferring entropy |
| - * from the primary pool to the secondary extraction pool. We make |
| - * sure we pull enough for a 'catastrophic reseed'. |
| - */ |
| -static void _xfer_secondary_pool(struct entropy_store *r, size_t nbytes); |
| -static void xfer_secondary_pool(struct entropy_store *r, size_t nbytes) |
| -{ |
| - if (!r->pull || |
| - r->entropy_count >= (nbytes << (ENTROPY_SHIFT + 3)) || |
| - r->entropy_count > r->poolinfo->poolfracbits) |
| - return; |
| - |
| - _xfer_secondary_pool(r, nbytes); |
| -} |
| - |
| -static void _xfer_secondary_pool(struct entropy_store *r, size_t nbytes) |
| -{ |
| - __u32 tmp[OUTPUT_POOL_WORDS]; |
| - |
| - int bytes = nbytes; |
| - |
| - /* pull at least as much as a wakeup */ |
| - bytes = max_t(int, bytes, random_read_wakeup_bits / 8); |
| - /* but never more than the buffer size */ |
| - bytes = min_t(int, bytes, sizeof(tmp)); |
| - |
| - trace_xfer_secondary_pool(r->name, bytes * 8, nbytes * 8, |
| - ENTROPY_BITS(r), ENTROPY_BITS(r->pull)); |
| - bytes = extract_entropy(r->pull, tmp, bytes, |
| - random_read_wakeup_bits / 8, 0); |
| - mix_pool_bytes(r, tmp, bytes); |
| - credit_entropy_bits(r, bytes*8); |
| -} |
| - |
| -/* |
| * This function decides how many bytes to actually take from the |
| * given pool, and also debits the entropy count accordingly. |
| */ |
| @@ -1613,7 +1576,6 @@ static ssize_t extract_entropy(struct en |
| spin_unlock_irqrestore(&r->lock, flags); |
| trace_extract_entropy(r->name, EXTRACT_SIZE, |
| ENTROPY_BITS(r), _RET_IP_); |
| - xfer_secondary_pool(r, EXTRACT_SIZE); |
| extract_buf(r, tmp); |
| spin_lock_irqsave(&r->lock, flags); |
| memcpy(r->last_data, tmp, EXTRACT_SIZE); |
| @@ -1622,7 +1584,6 @@ static ssize_t extract_entropy(struct en |
| } |
| |
| trace_extract_entropy(r->name, nbytes, ENTROPY_BITS(r), _RET_IP_); |
| - xfer_secondary_pool(r, nbytes); |
| nbytes = account(r, nbytes, min, reserved); |
| |
| return _extract_entropy(r, buf, nbytes, fips_enabled); |
| @@ -1833,7 +1794,6 @@ static void __init init_std_data(struct |
| ktime_t now = ktime_get_real(); |
| unsigned long rv; |
| |
| - r->last_pulled = jiffies; |
| mix_pool_bytes(r, &now, sizeof(now)); |
| for (i = r->poolinfo->poolbytes; i > 0; i -= sizeof(rv)) { |
| if (!arch_get_random_seed_long(&rv) && |