Module Name: src
Committed By: riastradh
Date: Thu Apr 30 03:40:54 UTC 2020
Modified Files:
src/sys/arch/arm/amlogic: meson_rng.c
src/sys/arch/arm/broadcom: bcm2835_rng.c
src/sys/arch/arm/nvidia: tegra124_car.c tegra210_car.c
src/sys/arch/arm/omap: am335x_trng.c
src/sys/arch/arm/sunxi: sun8i_crypto.c
src/sys/arch/arm/ti: ti_rng.c
src/sys/arch/mips/ingenic: ingenic_rng.c
src/sys/arch/x86/x86: cpu_rng.c
src/sys/dev/ic: amdccp.c rng200.c
src/sys/dev/pci: amdpm.c hifn7751.c ubsec.c viornd.c
src/sys/dev/usb: ualea.c
src/sys/rump/librump/rumpkern: hyperentropy.c
Removed Files:
src/sys/sys: rndpool.h
Log Message:
rnd_attach_source calls the callback itself now.
No need for every driver to explicitly call it to prime the pool.
Eliminate now-unused <sys/rndpool.h>.
To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/sys/arch/arm/amlogic/meson_rng.c
cvs rdiff -u -r1.13 -r1.14 src/sys/arch/arm/broadcom/bcm2835_rng.c
cvs rdiff -u -r1.19 -r1.20 src/sys/arch/arm/nvidia/tegra124_car.c
cvs rdiff -u -r1.25 -r1.26 src/sys/arch/arm/nvidia/tegra210_car.c
cvs rdiff -u -r1.2 -r1.3 src/sys/arch/arm/omap/am335x_trng.c
cvs rdiff -u -r1.12 -r1.13 src/sys/arch/arm/sunxi/sun8i_crypto.c
cvs rdiff -u -r1.2 -r1.3 src/sys/arch/arm/ti/ti_rng.c
cvs rdiff -u -r1.4 -r1.5 src/sys/arch/mips/ingenic/ingenic_rng.c
cvs rdiff -u -r1.12 -r1.13 src/sys/arch/x86/x86/cpu_rng.c
cvs rdiff -u -r1.1 -r1.2 src/sys/dev/ic/amdccp.c src/sys/dev/ic/rng200.c
cvs rdiff -u -r1.40 -r1.41 src/sys/dev/pci/amdpm.c
cvs rdiff -u -r1.66 -r1.67 src/sys/dev/pci/hifn7751.c
cvs rdiff -u -r1.49 -r1.50 src/sys/dev/pci/ubsec.c
cvs rdiff -u -r1.12 -r1.13 src/sys/dev/pci/viornd.c
cvs rdiff -u -r1.10 -r1.11 src/sys/dev/usb/ualea.c
cvs rdiff -u -r1.15 -r1.16 src/sys/rump/librump/rumpkern/hyperentropy.c
cvs rdiff -u -r1.4 -r0 src/sys/sys/rndpool.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/arm/amlogic/meson_rng.c
diff -u src/sys/arch/arm/amlogic/meson_rng.c:1.2 src/sys/arch/arm/amlogic/meson_rng.c:1.3
--- src/sys/arch/arm/amlogic/meson_rng.c:1.2 Sun Apr 21 14:13:55 2019
+++ src/sys/arch/arm/amlogic/meson_rng.c Thu Apr 30 03:40:52 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: meson_rng.c,v 1.2 2019/04/21 14:13:55 jmcneill Exp $ */
+/* $NetBSD: meson_rng.c,v 1.3 2020/04/30 03:40:52 riastradh Exp $ */
/*-
* Copyright (c) 2015-2019 Jared D. McNeill <[email protected]>
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: meson_rng.c,v 1.2 2019/04/21 14:13:55 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: meson_rng.c,v 1.3 2020/04/30 03:40:52 riastradh Exp $");
#include <sys/param.h>
#include <sys/bus.h>
@@ -35,7 +35,6 @@ __KERNEL_RCSID(0, "$NetBSD: meson_rng.c,
#include <sys/systm.h>
#include <sys/kernel.h>
#include <sys/mutex.h>
-#include <sys/rndpool.h>
#include <sys/rndsource.h>
#include <dev/fdt/fdtvar.h>
@@ -107,8 +106,6 @@ meson_rng_attach(device_t parent, device
rndsource_setcb(&sc->sc_rndsource, meson_rng_get, sc);
rnd_attach_source(&sc->sc_rndsource, device_xname(self), RND_TYPE_RNG,
RND_FLAG_COLLECT_VALUE|RND_FLAG_HASCB);
-
- meson_rng_get(RND_POOLBITS / NBBY, sc);
}
static void
Index: src/sys/arch/arm/broadcom/bcm2835_rng.c
diff -u src/sys/arch/arm/broadcom/bcm2835_rng.c:1.13 src/sys/arch/arm/broadcom/bcm2835_rng.c:1.14
--- src/sys/arch/arm/broadcom/bcm2835_rng.c:1.13 Sun Dec 10 21:38:26 2017
+++ src/sys/arch/arm/broadcom/bcm2835_rng.c Thu Apr 30 03:40:52 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: bcm2835_rng.c,v 1.13 2017/12/10 21:38:26 skrll Exp $ */
+/* $NetBSD: bcm2835_rng.c,v 1.14 2020/04/30 03:40:52 riastradh Exp $ */
/*-
* Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -30,14 +30,13 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: bcm2835_rng.c,v 1.13 2017/12/10 21:38:26 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: bcm2835_rng.c,v 1.14 2020/04/30 03:40:52 riastradh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/device.h>
#include <sys/kernel.h>
#include <sys/bus.h>
-#include <sys/rndpool.h>
#include <sys/rndsource.h>
#include <arm/broadcom/bcm2835reg.h>
@@ -122,9 +121,6 @@ bcmrng_attach(device_t parent, device_t
rndsource_setcb(&sc->sc_rndsource, &bcmrng_get, sc);
rnd_attach_source(&sc->sc_rndsource, device_xname(self), RND_TYPE_RNG,
RND_FLAG_COLLECT_VALUE|RND_FLAG_HASCB);
-
- /* get some initial entropy ASAP */
- bcmrng_get(RND_POOLBITS / NBBY, sc);
}
static void
Index: src/sys/arch/arm/nvidia/tegra124_car.c
diff -u src/sys/arch/arm/nvidia/tegra124_car.c:1.19 src/sys/arch/arm/nvidia/tegra124_car.c:1.20
--- src/sys/arch/arm/nvidia/tegra124_car.c:1.19 Sun Oct 13 06:11:31 2019
+++ src/sys/arch/arm/nvidia/tegra124_car.c Thu Apr 30 03:40:52 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: tegra124_car.c,v 1.19 2019/10/13 06:11:31 skrll Exp $ */
+/* $NetBSD: tegra124_car.c,v 1.20 2020/04/30 03:40:52 riastradh Exp $ */
/*-
* Copyright (c) 2015 Jared D. McNeill <[email protected]>
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tegra124_car.c,v 1.19 2019/10/13 06:11:31 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tegra124_car.c,v 1.20 2020/04/30 03:40:52 riastradh Exp $");
#include <sys/param.h>
#include <sys/bus.h>
@@ -35,7 +35,6 @@ __KERNEL_RCSID(0, "$NetBSD: tegra124_car
#include <sys/intr.h>
#include <sys/systm.h>
#include <sys/kernel.h>
-#include <sys/rndpool.h>
#include <sys/rndsource.h>
#include <sys/atomic.h>
#include <sys/kmem.h>
@@ -919,7 +918,6 @@ tegra124_car_rnd_attach(device_t self)
rndsource_setcb(&sc->sc_rndsource, tegra124_car_rnd_callback, sc);
rnd_attach_source(&sc->sc_rndsource, device_xname(sc->sc_dev),
RND_TYPE_RNG, RND_FLAG_COLLECT_VALUE|RND_FLAG_HASCB);
- tegra124_car_rnd_callback(RND_POOLBITS / NBBY, sc);
}
static void
Index: src/sys/arch/arm/nvidia/tegra210_car.c
diff -u src/sys/arch/arm/nvidia/tegra210_car.c:1.25 src/sys/arch/arm/nvidia/tegra210_car.c:1.26
--- src/sys/arch/arm/nvidia/tegra210_car.c:1.25 Sun Oct 13 06:11:31 2019
+++ src/sys/arch/arm/nvidia/tegra210_car.c Thu Apr 30 03:40:52 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: tegra210_car.c,v 1.25 2019/10/13 06:11:31 skrll Exp $ */
+/* $NetBSD: tegra210_car.c,v 1.26 2020/04/30 03:40:52 riastradh Exp $ */
/*-
* Copyright (c) 2015-2017 Jared McNeill <[email protected]>
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tegra210_car.c,v 1.25 2019/10/13 06:11:31 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tegra210_car.c,v 1.26 2020/04/30 03:40:52 riastradh Exp $");
#include <sys/param.h>
#include <sys/bus.h>
@@ -35,7 +35,6 @@ __KERNEL_RCSID(0, "$NetBSD: tegra210_car
#include <sys/intr.h>
#include <sys/systm.h>
#include <sys/kernel.h>
-#include <sys/rndpool.h>
#include <sys/rndsource.h>
#include <sys/atomic.h>
#include <sys/kmem.h>
Index: src/sys/arch/arm/omap/am335x_trng.c
diff -u src/sys/arch/arm/omap/am335x_trng.c:1.2 src/sys/arch/arm/omap/am335x_trng.c:1.3
--- src/sys/arch/arm/omap/am335x_trng.c:1.2 Sat Dec 17 15:24:35 2016
+++ src/sys/arch/arm/omap/am335x_trng.c Thu Apr 30 03:40:52 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: am335x_trng.c,v 1.2 2016/12/17 15:24:35 riastradh Exp $ */
+/* $NetBSD: am335x_trng.c,v 1.3 2020/04/30 03:40:52 riastradh Exp $ */
/*-
* Copyright (c) 2015 Jared D. McNeill <[email protected]>
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: am335x_trng.c,v 1.2 2016/12/17 15:24:35 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: am335x_trng.c,v 1.3 2020/04/30 03:40:52 riastradh Exp $");
#include "opt_omap.h"
@@ -36,7 +36,6 @@ __KERNEL_RCSID(0, "$NetBSD: am335x_trng.
#include <sys/conf.h>
#include <sys/mutex.h>
#include <sys/bus.h>
-#include <sys/rndpool.h>
#include <sys/rndsource.h>
#include <arm/omap/am335x_prcm.h>
@@ -119,8 +118,6 @@ trng_attach(device_t parent, device_t se
aprint_naive("\n");
aprint_normal("\n");
-
- trng_callback(RND_POOLBITS / NBBY, sc);
}
static void
Index: src/sys/arch/arm/sunxi/sun8i_crypto.c
diff -u src/sys/arch/arm/sunxi/sun8i_crypto.c:1.12 src/sys/arch/arm/sunxi/sun8i_crypto.c:1.13
--- src/sys/arch/arm/sunxi/sun8i_crypto.c:1.12 Thu Feb 6 19:52:09 2020
+++ src/sys/arch/arm/sunxi/sun8i_crypto.c Thu Apr 30 03:40:53 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: sun8i_crypto.c,v 1.12 2020/02/06 19:52:09 riastradh Exp $ */
+/* $NetBSD: sun8i_crypto.c,v 1.13 2020/04/30 03:40:53 riastradh Exp $ */
/*-
* Copyright (c) 2019 The NetBSD Foundation, Inc.
@@ -43,7 +43,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(1, "$NetBSD: sun8i_crypto.c,v 1.12 2020/02/06 19:52:09 riastradh Exp $");
+__KERNEL_RCSID(1, "$NetBSD: sun8i_crypto.c,v 1.13 2020/04/30 03:40:53 riastradh Exp $");
#include <sys/types.h>
#include <sys/param.h>
@@ -55,7 +55,6 @@ __KERNEL_RCSID(1, "$NetBSD: sun8i_crypto
#include <sys/kernel.h>
#include <sys/kmem.h>
#include <sys/mutex.h>
-#include <sys/rndpool.h>
#include <sys/rndsource.h>
#include <sys/sysctl.h>
#include <sys/workqueue.h>
Index: src/sys/arch/arm/ti/ti_rng.c
diff -u src/sys/arch/arm/ti/ti_rng.c:1.2 src/sys/arch/arm/ti/ti_rng.c:1.3
--- src/sys/arch/arm/ti/ti_rng.c:1.2 Tue Oct 29 22:19:13 2019
+++ src/sys/arch/arm/ti/ti_rng.c Thu Apr 30 03:40:53 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: ti_rng.c,v 1.2 2019/10/29 22:19:13 jmcneill Exp $ */
+/* $NetBSD: ti_rng.c,v 1.3 2020/04/30 03:40:53 riastradh Exp $ */
/*-
* Copyright (c) 2015 Jared D. McNeill <[email protected]>
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ti_rng.c,v 1.2 2019/10/29 22:19:13 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ti_rng.c,v 1.3 2020/04/30 03:40:53 riastradh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -34,7 +34,6 @@ __KERNEL_RCSID(0, "$NetBSD: ti_rng.c,v 1
#include <sys/conf.h>
#include <sys/mutex.h>
#include <sys/bus.h>
-#include <sys/rndpool.h>
#include <sys/rndsource.h>
#include <dev/fdt/fdtvar.h>
@@ -119,8 +118,6 @@ ti_rng_attach(device_t parent, device_t
aprint_naive("\n");
aprint_normal(": RNG\n");
-
- ti_rng_callback(RND_POOLBITS / NBBY, sc);
}
static void
Index: src/sys/arch/mips/ingenic/ingenic_rng.c
diff -u src/sys/arch/mips/ingenic/ingenic_rng.c:1.4 src/sys/arch/mips/ingenic/ingenic_rng.c:1.5
--- src/sys/arch/mips/ingenic/ingenic_rng.c:1.4 Wed Feb 17 20:12:42 2016
+++ src/sys/arch/mips/ingenic/ingenic_rng.c Thu Apr 30 03:40:53 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: ingenic_rng.c,v 1.4 2016/02/17 20:12:42 macallan Exp $ */
+/* $NetBSD: ingenic_rng.c,v 1.5 2020/04/30 03:40:53 riastradh Exp $ */
/*-
* Copyright (c) 2015 Michael McConville
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ingenic_rng.c,v 1.4 2016/02/17 20:12:42 macallan Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ingenic_rng.c,v 1.5 2020/04/30 03:40:53 riastradh Exp $");
/*
* adapted from Jared McNeill's amlogic_rng.c
@@ -40,7 +40,6 @@ __KERNEL_RCSID(0, "$NetBSD: ingenic_rng.
#include <sys/kernel.h>
#include <sys/mutex.h>
#include <sys/bus.h>
-#include <sys/rndpool.h>
#include <sys/rndsource.h>
#include <mips/ingenic/ingenic_var.h>
@@ -103,8 +102,6 @@ ingenic_rng_attach(device_t parent, devi
rndsource_setcb(&sc->sc_rndsource, ingenic_rng_get, sc);
rnd_attach_source(&sc->sc_rndsource, device_xname(self), RND_TYPE_RNG,
RND_FLAG_COLLECT_VALUE|RND_FLAG_HASCB);
-
- ingenic_rng_get(RND_POOLBITS / NBBY, sc);
}
static void
Index: src/sys/arch/x86/x86/cpu_rng.c
diff -u src/sys/arch/x86/x86/cpu_rng.c:1.12 src/sys/arch/x86/x86/cpu_rng.c:1.13
--- src/sys/arch/x86/x86/cpu_rng.c:1.12 Thu Apr 30 03:30:10 2020
+++ src/sys/arch/x86/x86/cpu_rng.c Thu Apr 30 03:40:53 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu_rng.c,v 1.12 2020/04/30 03:30:10 riastradh Exp $ */
+/* $NetBSD: cpu_rng.c,v 1.13 2020/04/30 03:40:53 riastradh Exp $ */
/*-
* Copyright (c) 2015 The NetBSD Foundation, Inc.
@@ -48,7 +48,6 @@
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/cpu.h>
-#include <sys/rndpool.h>
#include <sys/rndsource.h>
#include <sys/sha2.h>
@@ -250,27 +249,26 @@ cpu_rng(enum cpu_rng_mode mode, uint64_t
static void
cpu_rng_get(size_t nbytes, void *cookie)
{
- const unsigned N = howmany(RND_POOLBITS, 64);
+ const unsigned N = howmany(256, 64);
uint64_t buf[2*N];
unsigned i, nbits = 0;
- /*
- * Draw a sample large enough to (a) fill the pool if it had
- * full entropy, and (b) run a repeated-output test; then test
- * it. If RND_POOLBITS is at least 256, the fraction of
- * outputs this rejects in correct operation is 1/2^256, which
- * is close enough to zero that we round it to having no effect
- * on the number of bits of entropy.
- */
- for (i = 0; i < __arraycount(buf); i++)
- nbits += cpu_rng(cpu_rng_mode, &buf[i]);
- if (consttime_memequal(buf, buf + N, N)) {
- printf("cpu_rng %s: failed repetition test\n",
- cpu_rng_name[cpu_rng_mode]);
- nbits = 0;
+ for (; nbytes; nbytes -= MIN(nbytes, sizeof buf)) {
+ /*
+ * The fraction of outputs this rejects in correct
+ * operation is 1/2^256, which is close enough to zero
+ * that we round it to having no effect on the number
+ * of bits of entropy.
+ */
+ for (i = 0; i < __arraycount(buf); i++)
+ nbits += cpu_rng(cpu_rng_mode, &buf[i]);
+ if (consttime_memequal(buf, buf + N, N)) {
+ printf("cpu_rng %s: failed repetition test\n",
+ cpu_rng_name[cpu_rng_mode]);
+ nbits = 0;
+ }
+ rnd_add_data_sync(&cpu_rng_source, buf, sizeof buf, nbits);
}
-
- rnd_add_data_sync(&cpu_rng_source, buf, sizeof buf, nbits);
}
void
Index: src/sys/dev/ic/amdccp.c
diff -u src/sys/dev/ic/amdccp.c:1.1 src/sys/dev/ic/amdccp.c:1.2
--- src/sys/dev/ic/amdccp.c:1.1 Fri Oct 19 21:09:10 2018
+++ src/sys/dev/ic/amdccp.c Thu Apr 30 03:40:53 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: amdccp.c,v 1.1 2018/10/19 21:09:10 jakllsch Exp $ */
+/* $NetBSD: amdccp.c,v 1.2 2020/04/30 03:40:53 riastradh Exp $ */
/*
* Copyright (c) 2018 Jonathan A. Kollasch
@@ -28,13 +28,12 @@
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdccp.c,v 1.1 2018/10/19 21:09:10 jakllsch Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdccp.c,v 1.2 2020/04/30 03:40:53 riastradh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/device.h>
#include <sys/bus.h>
-#include <sys/rndpool.h>
#include <sys/rndsource.h>
#include <dev/ic/amdccpvar.h>
@@ -49,7 +48,6 @@ amdccp_common_attach(struct amdccp_softc
rndsource_setcb(&sc->sc_rndsource, amdccp_rnd_callback, sc);
rnd_attach_source(&sc->sc_rndsource, device_xname(sc->sc_dev),
RND_TYPE_RNG, RND_FLAG_COLLECT_VALUE|RND_FLAG_HASCB);
- amdccp_rnd_callback(RND_POOLBITS / NBBY, sc);
}
static uint32_t
Index: src/sys/dev/ic/rng200.c
diff -u src/sys/dev/ic/rng200.c:1.1 src/sys/dev/ic/rng200.c:1.2
--- src/sys/dev/ic/rng200.c:1.1 Sun Sep 1 14:44:14 2019
+++ src/sys/dev/ic/rng200.c Thu Apr 30 03:40:53 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: rng200.c,v 1.1 2019/09/01 14:44:14 mlelstv Exp $ */
+/* $NetBSD: rng200.c,v 1.2 2020/04/30 03:40:53 riastradh Exp $ */
/*
* Copyright (c) 2019 The NetBSD Foundation, Inc.
@@ -36,7 +36,6 @@
#include <sys/param.h>
#include <sys/bus.h>
#include <sys/mutex.h>
-#include <sys/rndpool.h>
#include <sys/rndsource.h>
#include <dev/ic/rng200var.h>
@@ -111,8 +110,6 @@ rng200_attach(struct rng200_softc *sc)
rndsource_setcb(&sc->sc_rndsource, rng200_get, sc);
rnd_attach_source(&sc->sc_rndsource, sc->sc_name,
RND_TYPE_RNG, RND_FLAG_COLLECT_VALUE|RND_FLAG_HASCB);
-
- rng200_get(RND_POOLBITS / NBBY, sc);
}
void
Index: src/sys/dev/pci/amdpm.c
diff -u src/sys/dev/pci/amdpm.c:1.40 src/sys/dev/pci/amdpm.c:1.41
--- src/sys/dev/pci/amdpm.c:1.40 Thu Apr 30 03:24:15 2020
+++ src/sys/dev/pci/amdpm.c Thu Apr 30 03:40:53 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: amdpm.c,v 1.40 2020/04/30 03:24:15 riastradh Exp $ */
+/* $NetBSD: amdpm.c,v 1.41 2020/04/30 03:40:53 riastradh Exp $ */
/*-
* Copyright (c) 2002 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: amdpm.c,v 1.40 2020/04/30 03:24:15 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: amdpm.c,v 1.41 2020/04/30 03:40:53 riastradh Exp $");
#include "opt_amdpm.h"
@@ -39,7 +39,6 @@ __KERNEL_RCSID(0, "$NetBSD: amdpm.c,v 1.
#include <sys/kernel.h>
#include <sys/device.h>
#include <sys/callout.h>
-#include <sys/rndpool.h>
#include <sys/rndsource.h>
#include <sys/mutex.h>
@@ -207,8 +206,6 @@ amdpm_attach(device_t parent, device_t s
rnd_attach_source(&sc->sc_rnd_source,
device_xname(self), RND_TYPE_RNG,
RND_FLAG_COLLECT_VALUE|RND_FLAG_HASCB);
- sc->sc_rnd_need = RND_POOLBITS / NBBY;
- amdpm_rnd_callout(sc);
}
}
}
Index: src/sys/dev/pci/hifn7751.c
diff -u src/sys/dev/pci/hifn7751.c:1.66 src/sys/dev/pci/hifn7751.c:1.67
--- src/sys/dev/pci/hifn7751.c:1.66 Thu Apr 30 03:24:15 2020
+++ src/sys/dev/pci/hifn7751.c Thu Apr 30 03:40:53 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: hifn7751.c,v 1.66 2020/04/30 03:24:15 riastradh Exp $ */
+/* $NetBSD: hifn7751.c,v 1.67 2020/04/30 03:40:53 riastradh Exp $ */
/* $FreeBSD: hifn7751.c,v 1.5.2.7 2003/10/08 23:52:00 sam Exp $ */
/* $OpenBSD: hifn7751.c,v 1.140 2003/08/01 17:55:54 deraadt Exp $ */
@@ -48,7 +48,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: hifn7751.c,v 1.66 2020/04/30 03:24:15 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: hifn7751.c,v 1.67 2020/04/30 03:40:53 riastradh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -68,7 +68,6 @@ __KERNEL_RCSID(0, "$NetBSD: hifn7751.c,v
#else
#include <opencrypto/cryptodev.h>
#include <sys/cprng.h>
-#include <sys/rndpool.h>
#include <sys/rndsource.h>
#include <sys/sha1.h>
#endif
@@ -439,7 +438,6 @@ hifn_attach(device_t parent, device_t se
if (sc->sc_flags & (HIFN_HAS_PUBLIC | HIFN_HAS_RNG)) {
hifn_init_pubrng(sc);
- sc->sc_rng_need = RND_POOLBITS / NBBY;
}
#ifdef __OpenBSD__
@@ -620,9 +618,6 @@ hifn_init_pubrng(struct hifn_softc *sc)
WRITE_REG_1(sc, HIFN_1_DMA_IER, sc->sc_dmaier);
}
- /* Call directly into the RNG once to prime the pool. */
- hifn_rng(sc); /* Sets callout/timeout at end */
-
return (0);
}
Index: src/sys/dev/pci/ubsec.c
diff -u src/sys/dev/pci/ubsec.c:1.49 src/sys/dev/pci/ubsec.c:1.50
--- src/sys/dev/pci/ubsec.c:1.49 Thu Apr 30 03:24:15 2020
+++ src/sys/dev/pci/ubsec.c Thu Apr 30 03:40:53 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: ubsec.c,v 1.49 2020/04/30 03:24:15 riastradh Exp $ */
+/* $NetBSD: ubsec.c,v 1.50 2020/04/30 03:40:53 riastradh Exp $ */
/* $FreeBSD: src/sys/dev/ubsec/ubsec.c,v 1.6.2.6 2003/01/23 21:06:43 sam Exp $ */
/* $OpenBSD: ubsec.c,v 1.143 2009/03/27 13:31:30 reyk Exp$ */
@@ -35,7 +35,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ubsec.c,v 1.49 2020/04/30 03:24:15 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ubsec.c,v 1.50 2020/04/30 03:40:53 riastradh Exp $");
#undef UBSEC_DEBUG
@@ -69,7 +69,6 @@ __KERNEL_RCSID(0, "$NetBSD: ubsec.c,v 1.
#else
#include <sys/cprng.h>
#include <sys/md5.h>
- #include <sys/rndpool.h>
#include <sys/rndsource.h>
#endif
#include <sys/sha1.h>
@@ -426,7 +425,6 @@ ubsec_attach(device_t parent, device_t s
return;
}
- sc->sc_rng_need = RND_POOLBITS / NBBY;
mutex_init(&sc->sc_mtx, MUTEX_DEFAULT, IPL_VM);
SIMPLEQ_INIT(&sc->sc_freequeue);
@@ -516,9 +514,6 @@ ubsec_attach(device_t parent, device_t s
rnd_attach_source(&sc->sc_rnd_source, device_xname(sc->sc_dev),
RND_TYPE_RNG,
RND_FLAG_COLLECT_VALUE|RND_FLAG_HASCB);
-#ifdef __NetBSD__
- callout_schedule(&sc->sc_rngto, sc->sc_rnghz);
-#endif
skip_rng:
if (sc->sc_rnghz)
Index: src/sys/dev/pci/viornd.c
diff -u src/sys/dev/pci/viornd.c:1.12 src/sys/dev/pci/viornd.c:1.13
--- src/sys/dev/pci/viornd.c:1.12 Sun Jun 10 14:59:23 2018
+++ src/sys/dev/pci/viornd.c Thu Apr 30 03:40:53 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: viornd.c,v 1.12 2018/06/10 14:59:23 jakllsch Exp $ */
+/* $NetBSD: viornd.c,v 1.13 2020/04/30 03:40:53 riastradh Exp $ */
/* $OpenBSD: viornd.c,v 1.1 2014/01/21 21:14:58 sf Exp $ */
/*
@@ -198,7 +198,6 @@ viornd_attach(device_t parent, device_t
rnd_attach_source(&sc->sc_rndsource, device_xname(sc->sc_dev),
RND_TYPE_RNG,
RND_FLAG_COLLECT_VALUE|RND_FLAG_HASCB);
- viornd_get(VIORND_BUFSIZE, sc);
return;
Index: src/sys/dev/usb/ualea.c
diff -u src/sys/dev/usb/ualea.c:1.10 src/sys/dev/usb/ualea.c:1.11
--- src/sys/dev/usb/ualea.c:1.10 Thu Apr 30 03:24:28 2020
+++ src/sys/dev/usb/ualea.c Thu Apr 30 03:40:53 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: ualea.c,v 1.10 2020/04/30 03:24:28 riastradh Exp $ */
+/* $NetBSD: ualea.c,v 1.11 2020/04/30 03:40:53 riastradh Exp $ */
/*-
* Copyright (c) 2017 The NetBSD Foundation, Inc.
@@ -30,14 +30,13 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ualea.c,v 1.10 2020/04/30 03:24:28 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ualea.c,v 1.11 2020/04/30 03:40:53 riastradh Exp $");
#include <sys/types.h>
#include <sys/atomic.h>
#include <sys/device_if.h>
#include <sys/kmem.h>
#include <sys/module.h>
-#include <sys/rndpool.h>
#include <sys/rndsource.h>
#include <dev/usb/usb.h>
@@ -54,7 +53,6 @@ struct ualea_softc {
/*
* Lock covers:
* - sc_needed
- * - sc_attached
* - sc_inflight
* - usbd_transfer(sc_xfer)
*/
@@ -107,9 +105,6 @@ ualea_attach(device_t parent, device_t s
/* Initialize the softc. */
sc->sc_dev = self;
mutex_init(&sc->sc_lock, MUTEX_DEFAULT, IPL_SOFTUSB);
- rndsource_setcb(&sc->sc_rnd, ualea_get, sc);
- rnd_attach_source(&sc->sc_rnd, device_xname(self), RND_TYPE_RNG,
- RND_FLAG_COLLECT_VALUE|RND_FLAG_HASCB);
/* Get endpoint descriptor 0. Make sure it's bulk-in. */
ed = usbd_interface2endpoint_descriptor(uiaa->uiaa_iface, 0);
@@ -150,12 +145,10 @@ ualea_attach(device_t parent, device_t s
ualea_xfer_done);
/* Success! We are ready to run. */
- mutex_enter(&sc->sc_lock);
sc->sc_attached = true;
- mutex_exit(&sc->sc_lock);
-
- /* Get some initial entropy now. */
- ualea_get(RND_POOLBITS/NBBY, sc);
+ rndsource_setcb(&sc->sc_rnd, ualea_get, sc);
+ rnd_attach_source(&sc->sc_rnd, device_xname(self), RND_TYPE_RNG,
+ RND_FLAG_COLLECT_VALUE|RND_FLAG_HASCB);
}
static int
@@ -164,9 +157,8 @@ ualea_detach(device_t self, int flags)
struct ualea_softc *sc = device_private(self);
/* Prevent new use of xfer. */
- mutex_enter(&sc->sc_lock);
- sc->sc_attached = false;
- mutex_exit(&sc->sc_lock);
+ if (sc->sc_attached)
+ rnd_detach_source(&sc->sc_rnd);
/* Cancel pending xfer. */
if (sc->sc_pipe)
@@ -178,7 +170,6 @@ ualea_detach(device_t self, int flags)
usbd_destroy_xfer(sc->sc_xfer);
if (sc->sc_pipe)
(void)usbd_close_pipe(sc->sc_pipe);
- rnd_detach_source(&sc->sc_rnd);
mutex_destroy(&sc->sc_lock);
return 0;
@@ -217,22 +208,10 @@ ualea_get(size_t nbytes, void *cookie)
struct ualea_softc *sc = cookie;
mutex_enter(&sc->sc_lock);
-
- /* Do nothing if not yet attached. */
- if (!sc->sc_attached)
- goto out;
-
- /* Update how many bytes we need. */
sc->sc_needed = MAX(sc->sc_needed, nbytes);
-
- /* Do nothing if xfer is already in flight. */
- if (sc->sc_inflight)
- goto out;
-
- /* Issue xfer. */
- ualea_xfer(sc);
-
-out: mutex_exit(&sc->sc_lock);
+ if (!sc->sc_inflight)
+ ualea_xfer(sc);
+ mutex_exit(&sc->sc_lock);
}
static void
Index: src/sys/rump/librump/rumpkern/hyperentropy.c
diff -u src/sys/rump/librump/rumpkern/hyperentropy.c:1.15 src/sys/rump/librump/rumpkern/hyperentropy.c:1.16
--- src/sys/rump/librump/rumpkern/hyperentropy.c:1.15 Sat May 21 14:59:45 2016
+++ src/sys/rump/librump/rumpkern/hyperentropy.c Thu Apr 30 03:40:53 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: hyperentropy.c,v 1.15 2016/05/21 14:59:45 riastradh Exp $ */
+/* $NetBSD: hyperentropy.c,v 1.16 2020/04/30 03:40:53 riastradh Exp $ */
/*
* Copyright (c) 2014 Antti Kantee. All Rights Reserved.
@@ -26,12 +26,11 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: hyperentropy.c,v 1.15 2016/05/21 14:59:45 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: hyperentropy.c,v 1.16 2020/04/30 03:40:53 riastradh Exp $");
#include <sys/param.h>
#include <sys/kmem.h>
#include <sys/mutex.h>
-#include <sys/rndpool.h>
#include <sys/rndsource.h>
#include <rump-sys/kern.h>
@@ -41,28 +40,27 @@ __KERNEL_RCSID(0, "$NetBSD: hyperentropy
static kmutex_t rndsrc_lock;
static krndsource_t rndsrc;
-#define MAXGET (RND_POOLBITS/NBBY)
static void
feedrandom(size_t bytes, void *cookie __unused)
{
uint8_t *rnddata;
size_t n, nread;
- rnddata = kmem_intr_alloc(MAXGET, KM_SLEEP);
+ rnddata = kmem_intr_alloc(bytes, KM_SLEEP);
n = 0;
- while (n < MIN(MAXGET, bytes)) {
- if (rumpuser_getrandom(rnddata + n, MIN(MAXGET, bytes) - n,
+ while (n < bytes) {
+ if (rumpuser_getrandom(rnddata + n, bytes - n,
RUMPUSER_RANDOM_HARD|RUMPUSER_RANDOM_NOWAIT, &nread)
!= 0)
break;
- n += MIN(nread, MIN(MAXGET, bytes) - n);
+ n += MIN(nread, bytes - n);
}
if (n) {
mutex_enter(&rndsrc_lock);
rnd_add_data_sync(&rndsrc, rnddata, n, NBBY*n);
mutex_exit(&rndsrc_lock);
}
- kmem_intr_free(rnddata, MAXGET);
+ kmem_intr_free(rnddata, bytes);
}
void
@@ -74,5 +72,4 @@ rump_hyperentropy_init(void)
rndsource_setcb(&rndsrc, &feedrandom, NULL);
rnd_attach_source(&rndsrc, "rump_hyperent", RND_TYPE_VM,
RND_FLAG_COLLECT_VALUE|RND_FLAG_HASCB);
- feedrandom(MAXGET, NULL);
}