summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2014-11-07 20:23:43 +0000
committerkib <kib@FreeBSD.org>2014-11-07 20:23:43 +0000
commitf40a40f28a0625831f6abc9195f76d9fcdea736d (patch)
treee75a7f41d6cc90aaf433717474427408ea8fbcca
parent1f3dc5c5b57524817319d499be1070c2b09e245c (diff)
downloadFreeBSD-src-f40a40f28a0625831f6abc9195f76d9fcdea736d.zip
FreeBSD-src-f40a40f28a0625831f6abc9195f76d9fcdea736d.tar.gz
Fix random.ko module.
- Remove duplicated sources between standard part of the kernel and module. In particular, it caused duplicated lock initialization and sysctl registration, both having bad consequences. - Add missed source files to module. - Static part of the kernel provides randomdev module, not random_adaptors. Correct dependencies. - Use cdev modules declaration macros. Approved by: secteam (delphij) Reviewed by: markm
-rw-r--r--sys/dev/random/ivy.c2
-rw-r--r--sys/dev/random/nehemiah.c2
-rw-r--r--sys/dev/random/randomdev.c10
-rw-r--r--sys/dev/random/randomdev_soft.c16
-rw-r--r--sys/modules/random/Makefile3
5 files changed, 8 insertions, 25 deletions
diff --git a/sys/dev/random/ivy.c b/sys/dev/random/ivy.c
index c098b87..bbc4e78 100644
--- a/sys/dev/random/ivy.c
+++ b/sys/dev/random/ivy.c
@@ -132,4 +132,4 @@ rdrand_modevent(module_t mod, int type, void *unused)
DEV_MODULE(rdrand, rdrand_modevent, NULL);
MODULE_VERSION(rdrand, 1);
-MODULE_DEPEND(rdrand, random_adaptors, 1, 1, 1);
+MODULE_DEPEND(rdrand, randomdev, 1, 1, 1);
diff --git a/sys/dev/random/nehemiah.c b/sys/dev/random/nehemiah.c
index 4740250..68949df 100644
--- a/sys/dev/random/nehemiah.c
+++ b/sys/dev/random/nehemiah.c
@@ -157,4 +157,4 @@ nehemiah_modevent(module_t mod, int type, void *unused)
DEV_MODULE(nehemiah, nehemiah_modevent, NULL);
MODULE_VERSION(nehemiah, 1);
-MODULE_DEPEND(nehemiah, random_adaptors, 1, 1, 1);
+MODULE_DEPEND(nehemiah, randomdev, 1, 1, 1);
diff --git a/sys/dev/random/randomdev.c b/sys/dev/random/randomdev.c
index bc41d51..c61bed7 100644
--- a/sys/dev/random/randomdev.c
+++ b/sys/dev/random/randomdev.c
@@ -159,15 +159,7 @@ randomdev_modevent(module_t mod __unused, int type, void *data __unused)
return (error);
}
-#define EARLY_2_DEV_MODULE(name, evh, arg) \
-static moduledata_t name##_mod = { \
- #name, \
- evh, \
- arg \
-}; \
-DECLARE_MODULE(name, name##_mod, SI_SUB_DRIVERS, SI_ORDER_SECOND)
-
-EARLY_2_DEV_MODULE(randomdev, randomdev_modevent, NULL);
+DEV_MODULE_ORDERED(randomdev, randomdev_modevent, NULL, SI_ORDER_SECOND);
MODULE_VERSION(randomdev, 1);
/* ================
diff --git a/sys/dev/random/randomdev_soft.c b/sys/dev/random/randomdev_soft.c
index 61cdf35..92b112a 100644
--- a/sys/dev/random/randomdev_soft.c
+++ b/sys/dev/random/randomdev_soft.c
@@ -153,21 +153,13 @@ randomdev_soft_modevent(module_t mod __unused, int type, void *unused __unused)
return (error);
}
-#define MID_DEV_MODULE(name, evh, arg) \
-static moduledata_t name##_mod = { \
- #name, \
- evh, \
- arg \
-}; \
-DECLARE_MODULE(name, name##_mod, SI_SUB_DRIVERS, SI_ORDER_MIDDLE)
-
#if defined(RANDOM_YARROW)
-MID_DEV_MODULE(yarrow, randomdev_soft_modevent, NULL);
+DEV_MODULE(yarrow, randomdev_soft_modevent, NULL);
MODULE_VERSION(yarrow, 1);
-MODULE_DEPEND(yarrow, random_adaptors, 1, 1, 1);
+MODULE_DEPEND(yarrow, randomdev, 1, 1, 1);
#endif
#if defined(RANDOM_FORTUNA)
-MID_DEV_MODULE(fortuna, randomdev_soft_modevent, NULL);
+DEV_MODULE(fortuna, randomdev_soft_modevent, NULL);
MODULE_VERSION(fortuna, 1);
-MODULE_DEPEND(fortuna, random_adaptors, 1, 1, 1);
+MODULE_DEPEND(fortuna, randomdev, 1, 1, 1);
#endif
diff --git a/sys/modules/random/Makefile b/sys/modules/random/Makefile
index 7d0370f..b42eac7 100644
--- a/sys/modules/random/Makefile
+++ b/sys/modules/random/Makefile
@@ -6,8 +6,7 @@
KMOD= random
SRCS= randomdev_soft.c
-SRCS+= yarrow.c hash.c
-SRCS+= random_harvestq.c live_entropy_sources.c
+SRCS+= yarrow.c fortuna.c hash.c
SRCS+= rijndael-alg-fst.c rijndael-api-fst.c sha2.c sha256c.c
SRCS+= bus_if.h device_if.h vnode_if.h opt_cpu.h opt_random.h
OpenPOWER on IntegriCloud