diff --git a/sys/conf/files b/sys/conf/files index 9ccb2bed5241..3153cddad948 100644 --- a/sys/conf/files +++ b/sys/conf/files @@ -2758,9 +2758,9 @@ rt2860.fw optional rt2860fw | ralfw \ clean "rt2860.fw" dev/random/random_infra.c optional random dev/random/random_harvestq.c optional random -dev/random/randomdev.c optional random +dev/random/randomdev.c optional random !random_loadable dev/random/fortuna.c optional random !random_loadable -dev/random/hash.c optional random +dev/random/hash.c optional random !random_loadable dev/rc/rc.c optional rc dev/rccgpio/rccgpio.c optional rccgpio gpio dev/re/if_re.c optional re diff --git a/sys/conf/files.amd64 b/sys/conf/files.amd64 index 2d1e6398776e..1d399122c50c 100644 --- a/sys/conf/files.amd64 +++ b/sys/conf/files.amd64 @@ -368,8 +368,8 @@ dev/nvme/nvme_sysctl.c optional nvme dev/nvme/nvme_test.c optional nvme dev/nvme/nvme_util.c optional nvme dev/nvram/nvram.c optional nvram isa -dev/random/ivy.c optional rdrand_rng -dev/random/nehemiah.c optional padlock_rng +dev/random/ivy.c optional rdrand_rng !random_loadable +dev/random/nehemiah.c optional padlock_rng !random_loadable dev/qlxge/qls_dbg.c optional qlxge pci dev/qlxge/qls_dump.c optional qlxge pci dev/qlxge/qls_hw.c optional qlxge pci diff --git a/sys/conf/files.arm64 b/sys/conf/files.arm64 index 03554fcd2c84..33234e28af4b 100644 --- a/sys/conf/files.arm64 +++ b/sys/conf/files.arm64 @@ -87,7 +87,7 @@ arm/broadcom/bcm2835/bcm2835_ft5406.c optional evdev bcm2835_ft5406 soc_brcm_bc arm/broadcom/bcm2835/bcm2835_gpio.c optional gpio soc_brcm_bcm2837 fdt arm/broadcom/bcm2835/bcm2835_intr.c optional soc_brcm_bcm2837 fdt arm/broadcom/bcm2835/bcm2835_mbox.c optional soc_brcm_bcm2837 fdt -arm/broadcom/bcm2835/bcm2835_rng.c optional random soc_brcm_bcm2837 fdt +arm/broadcom/bcm2835/bcm2835_rng.c optional random !random_loadable soc_brcm_bcm2837 fdt arm/broadcom/bcm2835/bcm2835_sdhci.c optional sdhci soc_brcm_bcm2837 fdt arm/broadcom/bcm2835/bcm2835_sdhost.c optional sdhci soc_brcm_bcm2837 fdt arm/broadcom/bcm2835/bcm2835_spi.c optional bcm2835_spi soc_brcm_bcm2837 fdt diff --git a/sys/conf/files.i386 b/sys/conf/files.i386 index 5ec74fc94083..ee0d1e673218 100644 --- a/sys/conf/files.i386 +++ b/sys/conf/files.i386 @@ -301,8 +301,8 @@ dev/nvme/nvme_util.c optional nvme dev/nvram/nvram.c optional nvram isa dev/ofw/ofwpci.c optional fdt pci dev/pcf/pcf_isa.c optional pcf -dev/random/ivy.c optional rdrand_rng -dev/random/nehemiah.c optional padlock_rng +dev/random/ivy.c optional rdrand_rng !random_loadable +dev/random/nehemiah.c optional padlock_rng !random_loadable dev/sbni/if_sbni.c optional sbni dev/sbni/if_sbni_isa.c optional sbni isa dev/sbni/if_sbni_pci.c optional sbni pci diff --git a/sys/conf/files.powerpc b/sys/conf/files.powerpc index f7c3151bdbce..cbda69a0d7cf 100644 --- a/sys/conf/files.powerpc +++ b/sys/conf/files.powerpc @@ -62,7 +62,7 @@ dev/ofw/ofw_standard.c optional aim powerpc dev/ofw/ofw_subr.c standard dev/powermac_nvram/powermac_nvram.c optional powermac_nvram powermac dev/quicc/quicc_bfe_fdt.c optional quicc mpc85xx -dev/random/darn.c optional powerpc64 random +dev/random/darn.c optional powerpc64 random !random_loadable dev/scc/scc_bfe_macio.c optional scc powermac dev/sdhci/fsl_sdhci.c optional mpc85xx sdhci dev/sec/sec.c optional sec mpc85xx diff --git a/sys/dev/random/random_infra.c b/sys/dev/random/random_infra.c index 9a40c35f12b7..dd64741a3ea6 100644 --- a/sys/dev/random/random_infra.c +++ b/sys/dev/random/random_infra.c @@ -198,9 +198,12 @@ read_random(void *buf, u_int len) bool is_random_seeded(void) { + bool result; + RANDOM_CONFIG_S_LOCK(); - random_reader_context.is_random_seeded(); + result = random_reader_context.is_random_seeded(); RANDOM_CONFIG_S_UNLOCK(); + return (result); } diff --git a/sys/dev/virtio/random/virtio_random.c b/sys/dev/virtio/random/virtio_random.c index 01403fac77f5..35cd227dd320 100644 --- a/sys/dev/virtio/random/virtio_random.c +++ b/sys/dev/virtio/random/virtio_random.c @@ -88,6 +88,7 @@ DRIVER_MODULE(virtio_random, virtio_pci, vtrnd_driver, vtrnd_devclass, vtrnd_modevent, 0); MODULE_VERSION(virtio_random, 1); MODULE_DEPEND(virtio_random, virtio, 1, 1, 1); +MODULE_DEPEND(virtio_random, random_device, 1, 1, 1); static int vtrnd_modevent(module_t mod, int type, void *unused)