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

From: Stephan Mueller
Date: Thu Jan 16 2020 - 01:53:53 EST


Am Donnerstag, 16. Januar 2020, 07:48:20 CET schrieb Randy Dunlap:

Hi Randy,

> 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@xxxxxxxxxxxx>
> >>> CC: "Alexander E. Patrakov" <patrakov@xxxxxxxxx>
> >>> CC: "Ahmed S. Darwish" <darwish.07@xxxxxxxxx>
> >>> CC: "Theodore Y. Ts'o" <tytso@xxxxxxx>
> >>> CC: Willy Tarreau <w@xxxxxx>
> >>> CC: Matthew Garrett <mjg59@xxxxxxxxxxxxx>
> >>> CC: Vito Caputo <vcaputo@xxxxxxxxxxx>
> >>> CC: Andreas Dilger <adilger.kernel@xxxxxxxxx>
> >>> CC: Jan Kara <jack@xxxxxxx>
> >>> CC: Ray Strode <rstrode@xxxxxxxxxx>
> >>> CC: William Jon McCann <mccann@xxxxxxx>
> >>> CC: zhangjs <zachary@xxxxxxxxxxxxxxxx>
> >>> CC: Andy Lutomirski <luto@xxxxxxxxxx>
> >>> CC: Florian Weimer <fweimer@xxxxxxxxxx>
> >>> CC: Lennart Poettering <mzxreary@xxxxxxxxxxx>
> >>> CC: Nicolai Stange <nstange@xxxxxxx>
> >>> Reviewed-by: Roman Drahtmueller <draht@xxxxxxxxxxxxxx>
> >>> Tested-by: Roman Drahtmüller <draht@xxxxxxxxxxxxxx>
> >>> Tested-by: Marcelo Henrique Cerri <marcelo.cerri@xxxxxxxxxxxxx>
> >>> Tested-by: Neil Horman <nhorman@xxxxxxxxxx>
> >>> Signed-off-by: Stephan Mueller <smueller@xxxxxxxxxx>
> >>> ---
> >>>
> >>> 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@xxxxxxxxxx>
> >>> + */
> >>> +
> >>> +#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.

Ok, I am changing all these strings to one-liners even though checkpatch.pl
will complain.

Thank you.

Ciao
Stephan