Re: [PATCH v28 11/12] LRNG - add interface for gathering of raw entropy

Randy Dunlap
2020-01-16T06:49:15Z

On 1/15/20 10:43 PM, Stephan Mueller wrote:
> Am Donnerstag, 16. Januar 2020, 01:18:18 CET schrieb Randy Dunlap:
>
> Hi Randy,
>
>> On 1/15/20 2:35 AM, Stephan Müller wrote:
>>> CC: "Eric W. Biederman" <ebiederm@xmission.com>
>>> CC: "Alexander E. Patrakov" <patrakov@gmail.com>
>>> CC: "Ahmed S. Darwish" <darwish.07@gmail.com>
>>> CC: "Theodore Y. Ts'o" <tytso@mit.edu>
>>> CC: Willy Tarreau <w@1wt.eu>
>>> CC: Matthew Garrett <mjg59@srcf.ucam.org>
>>> CC: Vito Caputo <vcaputo@pengaru.com>
>>> CC: Andreas Dilger <adilger.kernel@dilger.ca>
>>> CC: Jan Kara <jack@suse.cz>
>>> CC: Ray Strode <rstrode@redhat.com>
>>> CC: William Jon McCann <mccann@jhu.edu>
>>> CC: zhangjs <zachary@baishancloud.com>
>>> CC: Andy Lutomirski <luto@kernel.org>
>>> CC: Florian Weimer <fweimer@redhat.com>
>>> CC: Lennart Poettering <mzxreary@0pointer.de>
>>> CC: Nicolai Stange <nstange@suse.de>
>>> Reviewed-by: Roman Drahtmueller <draht@schaltsekun.de>
>>> Tested-by: Roman Drahtmüller <draht@schaltsekun.de>
>>> Tested-by: Marcelo Henrique Cerri <marcelo.cerri@canonical.com>
>>> Tested-by: Neil Horman <nhorman@redhat.com>
>>> Signed-off-by: Stephan Mueller <smueller@chronox.de>
>>> ---
>>>
>>> drivers/char/lrng/Kconfig | 16 ++
>>> drivers/char/lrng/Makefile | 1 +
>>> drivers/char/lrng/lrng_testing.c | 271 +++++++++++++++++++++++++++++++
>>> 3 files changed, 288 insertions(+)
>>> create mode 100644 drivers/char/lrng/lrng_testing.c
>>>
>>> diff --git a/drivers/char/lrng/lrng_testing.c
>>> b/drivers/char/lrng/lrng_testing.c new file mode 100644
>>> index 000000000000..0e287eccd622
>>> --- /dev/null
>>> +++ b/drivers/char/lrng/lrng_testing.c
>>> @@ -0,0 +1,271 @@
>>> +// SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
>>> +/*
>>> + * Linux Random Number Generator (LRNG) Raw entropy collection tool
>>> + *
>>> + * Copyright (C) 2019 - 2020, Stephan Mueller <smueller@chronox.de>
>>> + */
>>> +
>>> +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
>>> +
>>> +#include <linux/atomic.h>
>>> +#include <linux/bug.h>
>>> +#include <linux/debugfs.h>
>>> +#include <linux/module.h>
>>> +#include <linux/sched.h>
>>> +#include <linux/sched/signal.h>
>>> +#include <linux/slab.h>
>>> +#include <linux/string.h>
>>> +#include <linux/types.h>
>>> +#include <linux/uaccess.h>
>>> +#include <linux/workqueue.h>
>>> +#include <asm/errno.h>
>>> +
>>> +#include "lrng_internal.h"
>>> +
>>> +#define LRNG_TESTING_RINGBUFFER_SIZE 1024
>>> +#define LRNG_TESTING_RINGBUFFER_MASK (LRNG_TESTING_RINGBUFFER_SIZE - 1)
>>> +
>>> +static u32 lrng_testing_rb[LRNG_TESTING_RINGBUFFER_SIZE];
>>> +static u32 lrng_rb_reader = 0;
>>> +static u32 lrng_rb_writer = 0;
>>> +static atomic_t lrng_testing_enabled = ATOMIC_INIT(0);
>>> +
>>> +static DECLARE_WAIT_QUEUE_HEAD(lrng_raw_read_wait);
>>> +static DEFINE_SPINLOCK(lrng_raw_lock);
>>> +
>>> +/*
>>> + * 0 ==> No boot test, gathering of runtime data allowed
>>> + * 1 ==> Boot test enabled and ready for collecting data, gathering
>>> runtime + * data is disabled
>>> + * 2 ==> Boot test completed and disabled, gathering of runtime data is
>>> + * disabled
>>> + */
>>> +static u32 boot_test = 0;
>>> +module_param(boot_test, uint, 0644);
>>> +MODULE_PARM_DESC(boot_test, "Enable gathering boot time entropy of the
>>> first" + " entropy events");
>>
>> One line for the string, please.
>
> may I ask the question whether this should be done for all lines with printk
> statements? As checkpatch.pl will complain if you have lines larger than 80
> chars and complains about line-broken printk statements, I am always unsure
> which way to go.
>
> All printk statements in the patch series have line-broken printk statements.

It's for grep-ability of the strings.
grepping for partial strings would work as is, but then one would need to know
what partial string to search for.

--
~Randy