aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/random
diff options
context:
space:
mode:
authorMark Murray <markm@FreeBSD.org>2013-09-07 22:07:36 +0000
committerMark Murray <markm@FreeBSD.org>2013-09-07 22:07:36 +0000
commit7c2af6212d5345ade65f1e2013e08b74c14fc794 (patch)
tree5db3a9f20235f79669e06d69bb0fb00976c43a90 /sys/dev/random
parent4eb54166aa7b81d6898a8fe3529889a114d2a61e (diff)
downloadsrc-7c2af6212d5345ade65f1e2013e08b74c14fc794.tar.gz
src-7c2af6212d5345ade65f1e2013e08b74c14fc794.zip
Fix the build; Certain linkable symbols need to always be present.
Pass the pointy hat please. Also unblock the software (Yarrow) generator for now. This will be reverted; Yarrow needs to block until secure, not this behaviour of serving as soon as asked. Folks with specific requiremnts will be able to (can!) unblock this device with any write, and are encouraged to do so in /etc/rc.d/* scripting. ("Any" in this case could be "echo '' > /dev/random" as root).
Notes
Notes: svn path=/head/; revision=255379
Diffstat (limited to 'sys/dev/random')
-rw-r--r--sys/dev/random/pseudo_rng.c6
-rw-r--r--sys/dev/random/random_adaptors.c4
-rw-r--r--sys/dev/random/random_adaptors.h2
-rw-r--r--sys/dev/random/randomdev.c15
-rw-r--r--sys/dev/random/randomdev.h1
-rw-r--r--sys/dev/random/randomdev_soft.c4
6 files changed, 13 insertions, 19 deletions
diff --git a/sys/dev/random/pseudo_rng.c b/sys/dev/random/pseudo_rng.c
index 13552942f795..15cc7b3785d2 100644
--- a/sys/dev/random/pseudo_rng.c
+++ b/sys/dev/random/pseudo_rng.c
@@ -39,6 +39,12 @@ __FBSDID("$FreeBSD$");
static struct mtx pseudo_random_block_mtx;
+/* Used to fake out unused random calls in random_adaptor */
+void
+random_null_func(void)
+{
+}
+
static int
pseudo_random_block_read(void *buf __unused, int c __unused)
{
diff --git a/sys/dev/random/random_adaptors.c b/sys/dev/random/random_adaptors.c
index f6a21f6e08f4..5ee8033d0985 100644
--- a/sys/dev/random/random_adaptors.c
+++ b/sys/dev/random/random_adaptors.c
@@ -53,6 +53,8 @@ static struct sx adaptors_lock; /* need a sleepable lock */
/* List for the dynamic sysctls */
static struct sysctl_ctx_list random_clist;
+struct random_adaptor *random_adaptor;
+
MALLOC_DEFINE(M_RANDOM_ADAPTORS, "random_adaptors", "Random adaptors buffers");
int
@@ -230,7 +232,7 @@ random_sysctl_active_adaptor_handler(SYSCTL_HANDLER_ARGS)
int error;
name = NULL;
- rsp = random_get_active_adaptor();
+ rsp = random_adaptor;
if (rsp != NULL) {
sx_slock(&adaptors_lock);
diff --git a/sys/dev/random/random_adaptors.h b/sys/dev/random/random_adaptors.h
index 98f8c2ebe273..fa5f7c82883d 100644
--- a/sys/dev/random/random_adaptors.h
+++ b/sys/dev/random/random_adaptors.h
@@ -41,6 +41,8 @@ struct random_adaptor *random_adaptor_get(const char *);
int random_adaptor_register(const char *, struct random_adaptor *);
void random_adaptor_choose(struct random_adaptor **);
+extern struct random_adaptor *random_adaptor;
+
/*
* random_adaptor's should be registered prior to
* random module (SI_SUB_DRIVERS/SI_ORDER_MIDDLE)
diff --git a/sys/dev/random/randomdev.c b/sys/dev/random/randomdev.c
index 850948ee9627..0f10e6c627f2 100644
--- a/sys/dev/random/randomdev.c
+++ b/sys/dev/random/randomdev.c
@@ -72,27 +72,12 @@ static struct cdevsw random_cdevsw = {
.d_name = "random",
};
-static struct random_adaptor *random_adaptor;
static eventhandler_tag attach_tag;
static int random_inited;
-
/* For use with make_dev(9)/destroy_dev(9). */
static struct cdev *random_dev;
-/* Used to fake out unused random calls in random_adaptor */
-void
-random_null_func(void)
-{
-}
-
-struct random_adaptor *
-random_get_active_adaptor(void)
-{
-
- return (random_adaptor);
-}
-
/* ARGSUSED */
static int
random_close(struct cdev *dev __unused, int flags, int fmt __unused,
diff --git a/sys/dev/random/randomdev.h b/sys/dev/random/randomdev.h
index aeb47531ae72..75b2c1980901 100644
--- a/sys/dev/random/randomdev.h
+++ b/sys/dev/random/randomdev.h
@@ -53,4 +53,3 @@ struct random_adaptor {
extern void random_ident_hardware(struct random_adaptor **);
extern void random_null_func(void);
-struct random_adaptor *random_get_active_adaptor(void);
diff --git a/sys/dev/random/randomdev_soft.c b/sys/dev/random/randomdev_soft.c
index 7d14cc669c1a..61afb1b76a71 100644
--- a/sys/dev/random/randomdev_soft.c
+++ b/sys/dev/random/randomdev_soft.c
@@ -79,7 +79,7 @@ static struct random_adaptor random_context = {
.write = randomdev_write,
.poll = randomdev_poll,
.reseed = randomdev_flush_reseed,
- .seeded = 0,
+ .seeded = 1,
};
#define RANDOM_MODULE_NAME yarrow
#define RANDOM_CSPRNG_NAME "yarrow"
@@ -95,7 +95,7 @@ static struct random_adaptor random_context = {
.write = randomdev_write,
.poll = randomdev_poll,
.reseed = randomdev_flush_reseed,
- .seeded = 0,
+ .seeded = 1,
};
#define RANDOM_MODULE_NAME fortuna
#define RANDOM_CSPRNG_NAME "fortuna"