random: remove unused tracepoints
authorJason A. Donenfeld <Jason@zx2c4.com>
Thu, 10 Feb 2022 15:40:44 +0000 (16:40 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 25 Jun 2022 09:46:34 +0000 (11:46 +0200)
commit 14c174633f349cb41ea90c2c0aaddac157012f74 upstream.

These explicit tracepoints aren't really used and show sign of aging.
It's work to keep these up to date, and before I attempted to keep them
up to date, they weren't up to date, which indicates that they're not
really used. These days there are better ways of introspecting anyway.

Cc: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Dominik Brodowski <linux@dominikbrodowski.net>
Reviewed-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/char/random.c
include/trace/events/random.h [deleted file]
lib/random32.c

index 4f1c8320c4c90c99bd9349bbc7afb256ff40f33f..e177527300366824cb9c4b1763dbb4dccaef7044 100644 (file)
 #include <asm/irq_regs.h>
 #include <asm/io.h>
 
-#define CREATE_TRACE_POINTS
-#include <trace/events/random.h>
-
 enum {
        POOL_BITS = BLAKE2S_HASH_SIZE * 8,
        POOL_MIN_BITS = POOL_BITS /* No point in settling for less. */
@@ -315,7 +312,6 @@ static void mix_pool_bytes(const void *in, size_t nbytes)
 {
        unsigned long flags;
 
-       trace_mix_pool_bytes(nbytes, _RET_IP_);
        spin_lock_irqsave(&input_pool.lock, flags);
        _mix_pool_bytes(in, nbytes);
        spin_unlock_irqrestore(&input_pool.lock, flags);
@@ -389,8 +385,6 @@ static void credit_entropy_bits(size_t nbits)
                entropy_count = min_t(unsigned int, POOL_BITS, orig + add);
        } while (cmpxchg(&input_pool.entropy_count, orig, entropy_count) != orig);
 
-       trace_credit_entropy_bits(nbits, entropy_count, _RET_IP_);
-
        if (crng_init < 2 && entropy_count >= POOL_MIN_BITS)
                crng_reseed();
 }
@@ -719,7 +713,6 @@ void add_device_randomness(const void *buf, size_t size)
        if (!crng_ready() && size)
                crng_slow_load(buf, size);
 
-       trace_add_device_randomness(size, _RET_IP_);
        spin_lock_irqsave(&input_pool.lock, flags);
        _mix_pool_bytes(buf, size);
        _mix_pool_bytes(&time, sizeof(time));
@@ -798,7 +791,6 @@ void add_input_randomness(unsigned int type, unsigned int code,
        last_value = value;
        add_timer_randomness(&input_timer_state,
                             (type << 4) ^ code ^ (code >> 4) ^ value);
-       trace_add_input_randomness(input_pool.entropy_count);
 }
 EXPORT_SYMBOL_GPL(add_input_randomness);
 
@@ -878,7 +870,6 @@ void add_disk_randomness(struct gendisk *disk)
                return;
        /* first major is 1, so we get >= 0x200 here */
        add_timer_randomness(disk->random, 0x100 + disk_devt(disk));
-       trace_add_disk_randomness(disk_devt(disk), input_pool.entropy_count);
 }
 EXPORT_SYMBOL_GPL(add_disk_randomness);
 #endif
@@ -903,8 +894,6 @@ static void extract_entropy(void *buf, size_t nbytes)
        } block;
        size_t i;
 
-       trace_extract_entropy(nbytes, input_pool.entropy_count);
-
        for (i = 0; i < ARRAY_SIZE(block.rdseed); ++i) {
                if (!arch_get_random_seed_long(&block.rdseed[i]) &&
                    !arch_get_random_long(&block.rdseed[i]))
@@ -976,8 +965,6 @@ static void _get_random_bytes(void *buf, size_t nbytes)
        u8 tmp[CHACHA20_BLOCK_SIZE];
        size_t len;
 
-       trace_get_random_bytes(nbytes, _RET_IP_);
-
        if (!nbytes)
                return;
 
@@ -1174,7 +1161,6 @@ size_t __must_check get_random_bytes_arch(void *buf, size_t nbytes)
        size_t left = nbytes;
        u8 *p = buf;
 
-       trace_get_random_bytes_arch(left, _RET_IP_);
        while (left) {
                unsigned long v;
                size_t chunk = min_t(size_t, left, sizeof(unsigned long));
@@ -1258,16 +1244,6 @@ void rand_initialize_disk(struct gendisk *disk)
 }
 #endif
 
-static ssize_t urandom_read_nowarn(struct file *file, char __user *buf,
-                                  size_t nbytes, loff_t *ppos)
-{
-       ssize_t ret;
-
-       ret = get_random_bytes_user(buf, nbytes);
-       trace_urandom_read(nbytes, input_pool.entropy_count);
-       return ret;
-}
-
 static ssize_t urandom_read(struct file *file, char __user *buf, size_t nbytes,
                            loff_t *ppos)
 {
@@ -1280,7 +1256,7 @@ static ssize_t urandom_read(struct file *file, char __user *buf, size_t nbytes,
                                  current->comm, nbytes);
        }
 
-       return urandom_read_nowarn(file, buf, nbytes, ppos);
+       return get_random_bytes_user(buf, nbytes);
 }
 
 static ssize_t random_read(struct file *file, char __user *buf, size_t nbytes,
@@ -1291,7 +1267,7 @@ static ssize_t random_read(struct file *file, char __user *buf, size_t nbytes,
        ret = wait_for_random_bytes();
        if (ret != 0)
                return ret;
-       return urandom_read_nowarn(file, buf, nbytes, ppos);
+       return get_random_bytes_user(buf, nbytes);
 }
 
 static unsigned int random_poll(struct file *file, poll_table *wait)
@@ -1450,7 +1426,7 @@ SYSCALL_DEFINE3(getrandom, char __user *, buf, size_t, count, unsigned int,
                if (unlikely(ret))
                        return ret;
        }
-       return urandom_read_nowarn(NULL, buf, count, NULL);
+       return get_random_bytes_user(buf, count);
 }
 
 /********************************************************************
diff --git a/include/trace/events/random.h b/include/trace/events/random.h
deleted file mode 100644 (file)
index 29ebb62..0000000
+++ /dev/null
@@ -1,195 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM random
-
-#if !defined(_TRACE_RANDOM_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_RANDOM_H
-
-#include <linux/writeback.h>
-#include <linux/tracepoint.h>
-
-TRACE_EVENT(add_device_randomness,
-       TP_PROTO(size_t bytes, unsigned long IP),
-
-       TP_ARGS(bytes, IP),
-
-       TP_STRUCT__entry(
-               __field(size_t,         bytes   )
-               __field(unsigned long,  IP      )
-       ),
-
-       TP_fast_assign(
-               __entry->bytes          = bytes;
-               __entry->IP             = IP;
-       ),
-
-       TP_printk("bytes %zu caller %pS",
-               __entry->bytes, (void *)__entry->IP)
-);
-
-DECLARE_EVENT_CLASS(random__mix_pool_bytes,
-       TP_PROTO(size_t bytes, unsigned long IP),
-
-       TP_ARGS(bytes, IP),
-
-       TP_STRUCT__entry(
-               __field(size_t,         bytes   )
-               __field(unsigned long,  IP      )
-       ),
-
-       TP_fast_assign(
-               __entry->bytes          = bytes;
-               __entry->IP             = IP;
-       ),
-
-       TP_printk("input pool: bytes %zu caller %pS",
-                 __entry->bytes, (void *)__entry->IP)
-);
-
-DEFINE_EVENT(random__mix_pool_bytes, mix_pool_bytes,
-       TP_PROTO(size_t bytes, unsigned long IP),
-
-       TP_ARGS(bytes, IP)
-);
-
-DEFINE_EVENT(random__mix_pool_bytes, mix_pool_bytes_nolock,
-       TP_PROTO(int bytes, unsigned long IP),
-
-       TP_ARGS(bytes, IP)
-);
-
-TRACE_EVENT(credit_entropy_bits,
-       TP_PROTO(size_t bits, size_t entropy_count, unsigned long IP),
-
-       TP_ARGS(bits, entropy_count, IP),
-
-       TP_STRUCT__entry(
-               __field(size_t,         bits                    )
-               __field(size_t,         entropy_count           )
-               __field(unsigned long,  IP                      )
-       ),
-
-       TP_fast_assign(
-               __entry->bits           = bits;
-               __entry->entropy_count  = entropy_count;
-               __entry->IP             = IP;
-       ),
-
-       TP_printk("input pool: bits %zu entropy_count %zu caller %pS",
-                 __entry->bits, __entry->entropy_count, (void *)__entry->IP)
-);
-
-TRACE_EVENT(add_input_randomness,
-       TP_PROTO(size_t input_bits),
-
-       TP_ARGS(input_bits),
-
-       TP_STRUCT__entry(
-               __field(size_t, input_bits              )
-       ),
-
-       TP_fast_assign(
-               __entry->input_bits     = input_bits;
-       ),
-
-       TP_printk("input_pool_bits %zu", __entry->input_bits)
-);
-
-TRACE_EVENT(add_disk_randomness,
-       TP_PROTO(dev_t dev, size_t input_bits),
-
-       TP_ARGS(dev, input_bits),
-
-       TP_STRUCT__entry(
-               __field(dev_t,          dev                     )
-               __field(size_t,         input_bits              )
-       ),
-
-       TP_fast_assign(
-               __entry->dev            = dev;
-               __entry->input_bits     = input_bits;
-       ),
-
-       TP_printk("dev %d,%d input_pool_bits %zu", MAJOR(__entry->dev),
-                 MINOR(__entry->dev), __entry->input_bits)
-);
-
-DECLARE_EVENT_CLASS(random__get_random_bytes,
-       TP_PROTO(size_t nbytes, unsigned long IP),
-
-       TP_ARGS(nbytes, IP),
-
-       TP_STRUCT__entry(
-               __field(size_t,         nbytes                  )
-               __field(unsigned long,  IP                      )
-       ),
-
-       TP_fast_assign(
-               __entry->nbytes         = nbytes;
-               __entry->IP             = IP;
-       ),
-
-       TP_printk("nbytes %zu caller %pS", __entry->nbytes, (void *)__entry->IP)
-);
-
-DEFINE_EVENT(random__get_random_bytes, get_random_bytes,
-       TP_PROTO(size_t nbytes, unsigned long IP),
-
-       TP_ARGS(nbytes, IP)
-);
-
-DEFINE_EVENT(random__get_random_bytes, get_random_bytes_arch,
-       TP_PROTO(size_t nbytes, unsigned long IP),
-
-       TP_ARGS(nbytes, IP)
-);
-
-DECLARE_EVENT_CLASS(random__extract_entropy,
-       TP_PROTO(size_t nbytes, size_t entropy_count),
-
-       TP_ARGS(nbytes, entropy_count),
-
-       TP_STRUCT__entry(
-               __field(  size_t,       nbytes                  )
-               __field(  size_t,       entropy_count           )
-       ),
-
-       TP_fast_assign(
-               __entry->nbytes         = nbytes;
-               __entry->entropy_count  = entropy_count;
-       ),
-
-       TP_printk("input pool: nbytes %zu entropy_count %zu",
-                 __entry->nbytes, __entry->entropy_count)
-);
-
-
-DEFINE_EVENT(random__extract_entropy, extract_entropy,
-       TP_PROTO(size_t nbytes, size_t entropy_count),
-
-       TP_ARGS(nbytes, entropy_count)
-);
-
-TRACE_EVENT(urandom_read,
-       TP_PROTO(size_t nbytes, size_t entropy_count),
-
-       TP_ARGS(nbytes, entropy_count),
-
-       TP_STRUCT__entry(
-               __field( size_t,        nbytes          )
-               __field( size_t,        entropy_count   )
-       ),
-
-       TP_fast_assign(
-               __entry->nbytes         = nbytes;
-               __entry->entropy_count  = entropy_count;
-       ),
-
-       TP_printk("reading: nbytes %zu entropy_count %zu",
-                 __entry->nbytes, __entry->entropy_count)
-);
-
-#endif /* _TRACE_RANDOM_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>
index f5e967f4adfa75cf4b60fdcd654f7158867b1a5c..1d6802b6e44fd6de457c32a6cc8246d084c87be8 100644 (file)
@@ -38,6 +38,8 @@
 #include <linux/jiffies.h>
 #include <linux/random.h>
 #include <linux/sched.h>
+#include <linux/bitops.h>
+#include <linux/slab.h>
 #include <asm/unaligned.h>
 
 /**