summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/dev/random/harvest.c8
-rw-r--r--sys/dev/random/yarrow.c4
-rw-r--r--sys/dev/randomdev/harvest.c8
-rw-r--r--sys/dev/randomdev/yarrow.c4
4 files changed, 4 insertions, 20 deletions
diff --git a/sys/dev/random/harvest.c b/sys/dev/random/harvest.c
index ceb9f9f..591d0d0 100644
--- a/sys/dev/random/harvest.c
+++ b/sys/dev/random/harvest.c
@@ -47,22 +47,14 @@ static void (*reap)(struct timespec *, u_int64_t, u_int, u_int, u_int) = NULL;
void
random_init_harvester(void (*reaper)(struct timespec *, u_int64_t, u_int, u_int, u_int))
{
- intrmask_t mask;
-
- mask = splhigh();
reap = reaper;
- splx(mask);
}
/* Deinitialise the harvester at unload time */
void
random_deinit_harvester(void)
{
- intrmask_t mask;
-
- mask = splhigh();
reap = NULL;
- splx(mask);
}
/* Entropy harvesting routine. This is supposed to be fast; do */
diff --git a/sys/dev/random/yarrow.c b/sys/dev/random/yarrow.c
index 99453f6..c6ae448 100644
--- a/sys/dev/random/yarrow.c
+++ b/sys/dev/random/yarrow.c
@@ -320,8 +320,8 @@ random_harvest_internal(struct timespec *nanotime, u_int64_t entropy,
#endif
if (origin < ENTROPYSOURCE) {
- /* The reseed task must not be jumped on */
- mask = splsofttq();
+ /* Called inside irq handlers; protect from interference */
+ mask = splhigh();
which = random_state.which;
pool = &random_state.pool[which];
diff --git a/sys/dev/randomdev/harvest.c b/sys/dev/randomdev/harvest.c
index ceb9f9f..591d0d0 100644
--- a/sys/dev/randomdev/harvest.c
+++ b/sys/dev/randomdev/harvest.c
@@ -47,22 +47,14 @@ static void (*reap)(struct timespec *, u_int64_t, u_int, u_int, u_int) = NULL;
void
random_init_harvester(void (*reaper)(struct timespec *, u_int64_t, u_int, u_int, u_int))
{
- intrmask_t mask;
-
- mask = splhigh();
reap = reaper;
- splx(mask);
}
/* Deinitialise the harvester at unload time */
void
random_deinit_harvester(void)
{
- intrmask_t mask;
-
- mask = splhigh();
reap = NULL;
- splx(mask);
}
/* Entropy harvesting routine. This is supposed to be fast; do */
diff --git a/sys/dev/randomdev/yarrow.c b/sys/dev/randomdev/yarrow.c
index 99453f6..c6ae448 100644
--- a/sys/dev/randomdev/yarrow.c
+++ b/sys/dev/randomdev/yarrow.c
@@ -320,8 +320,8 @@ random_harvest_internal(struct timespec *nanotime, u_int64_t entropy,
#endif
if (origin < ENTROPYSOURCE) {
- /* The reseed task must not be jumped on */
- mask = splsofttq();
+ /* Called inside irq handlers; protect from interference */
+ mask = splhigh();
which = random_state.which;
pool = &random_state.pool[which];
OpenPOWER on IntegriCloud