Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (18 of many)
r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly marked). Use it in preparation for a general review of all nodes. This is non-functional change that adds annotations to SYSCTL_NODE and SYSCTL_PROC nodes using one of the soon-to-be-required flags. Mark all obvious cases as MPSAFE. All entries that haven't been marked as MPSAFE before are by default marked as NEEDGIANT Reviewed by: cem Approved by: csprng, kib (mentor, blanket) Differential Revision: https://reviews.freebsd.org/D23841
This commit is contained in:
parent
558067cc6a
commit
4cefab8ea6
@ -299,14 +299,14 @@ random_fortuna_init_alg(void *unused __unused)
|
||||
fortuna_state.fs_lasttime = 0;
|
||||
random_fortuna_o = SYSCTL_ADD_NODE(&random_clist,
|
||||
SYSCTL_STATIC_CHILDREN(_kern_random),
|
||||
OID_AUTO, "fortuna", CTLFLAG_RW, 0,
|
||||
OID_AUTO, "fortuna", CTLFLAG_RW | CTLFLAG_MPSAFE, 0,
|
||||
"Fortuna Parameters");
|
||||
SYSCTL_ADD_PROC(&random_clist,
|
||||
SYSCTL_CHILDREN(random_fortuna_o), OID_AUTO,
|
||||
"minpoolsize", CTLTYPE_UINT | CTLFLAG_RWTUN,
|
||||
&fortuna_state.fs_minpoolsize, RANDOM_FORTUNA_DEFPOOLSIZE,
|
||||
random_check_uint_fs_minpoolsize, "IU",
|
||||
"Minimum pool size necessary to cause a reseed");
|
||||
SYSCTL_CHILDREN(random_fortuna_o), OID_AUTO, "minpoolsize",
|
||||
CTLTYPE_UINT | CTLFLAG_RWTUN | CTLFLAG_MPSAFE,
|
||||
&fortuna_state.fs_minpoolsize, RANDOM_FORTUNA_DEFPOOLSIZE,
|
||||
random_check_uint_fs_minpoolsize, "IU",
|
||||
"Minimum pool size necessary to cause a reseed");
|
||||
KASSERT(fortuna_state.fs_minpoolsize > 0, ("random: Fortuna threshold must be > 0 at startup"));
|
||||
|
||||
SYSCTL_ADD_BOOL(&random_clist, SYSCTL_CHILDREN(random_fortuna_o),
|
||||
|
@ -60,7 +60,7 @@ static struct random_source random_ivy = {
|
||||
.rs_read = random_ivy_read
|
||||
};
|
||||
|
||||
SYSCTL_NODE(_kern_random, OID_AUTO, rdrand, CTLFLAG_RW, 0,
|
||||
SYSCTL_NODE(_kern_random, OID_AUTO, rdrand, CTLFLAG_RW | CTLFLAG_MPSAFE, 0,
|
||||
"rdrand (ivy) entropy source");
|
||||
static bool acquire_independent_seed_samples = false;
|
||||
SYSCTL_BOOL(_kern_random_rdrand, OID_AUTO, rdrand_independent_seed,
|
||||
|
@ -111,7 +111,7 @@ struct random_sources {
|
||||
static CK_LIST_HEAD(sources_head, random_sources) source_list =
|
||||
CK_LIST_HEAD_INITIALIZER(source_list);
|
||||
|
||||
SYSCTL_NODE(_kern_random, OID_AUTO, harvest, CTLFLAG_RW, 0,
|
||||
SYSCTL_NODE(_kern_random, OID_AUTO, harvest, CTLFLAG_RW | CTLFLAG_MPSAFE, 0,
|
||||
"Entropy Device Parameters");
|
||||
|
||||
/*
|
||||
@ -305,8 +305,10 @@ random_check_uint_harvestmask(SYSCTL_HANDLER_ARGS)
|
||||
(orig_value & user_immutable_mask);
|
||||
return (0);
|
||||
}
|
||||
SYSCTL_PROC(_kern_random_harvest, OID_AUTO, mask, CTLTYPE_UINT | CTLFLAG_RW,
|
||||
NULL, 0, random_check_uint_harvestmask, "IU", "Entropy harvesting mask");
|
||||
SYSCTL_PROC(_kern_random_harvest, OID_AUTO, mask,
|
||||
CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, NULL, 0,
|
||||
random_check_uint_harvestmask, "IU",
|
||||
"Entropy harvesting mask");
|
||||
|
||||
/* ARGSUSED */
|
||||
static int
|
||||
@ -326,7 +328,8 @@ random_print_harvestmask(SYSCTL_HANDLER_ARGS)
|
||||
return (error);
|
||||
}
|
||||
SYSCTL_PROC(_kern_random_harvest, OID_AUTO, mask_bin,
|
||||
CTLTYPE_STRING | CTLFLAG_RD, NULL, 0, random_print_harvestmask, "A",
|
||||
CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, 0,
|
||||
random_print_harvestmask, "A",
|
||||
"Entropy harvesting mask (printable)");
|
||||
|
||||
static const char *random_source_descr[ENTROPYSOURCE] = {
|
||||
@ -387,8 +390,9 @@ random_print_harvestmask_symbolic(SYSCTL_HANDLER_ARGS)
|
||||
return (error);
|
||||
}
|
||||
SYSCTL_PROC(_kern_random_harvest, OID_AUTO, mask_symbolic,
|
||||
CTLTYPE_STRING | CTLFLAG_RD, NULL, 0, random_print_harvestmask_symbolic,
|
||||
"A", "Entropy harvesting mask (symbolic)");
|
||||
CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, 0,
|
||||
random_print_harvestmask_symbolic, "A",
|
||||
"Entropy harvesting mask (symbolic)");
|
||||
|
||||
/* ARGSUSED */
|
||||
static void
|
||||
|
@ -38,9 +38,10 @@ __FBSDID("$FreeBSD$");
|
||||
#include <dev/random/randomdev.h>
|
||||
|
||||
/* Set up the sysctl root node for the entropy device */
|
||||
SYSCTL_NODE(_kern, OID_AUTO, random, CTLFLAG_RW, 0,
|
||||
SYSCTL_NODE(_kern, OID_AUTO, random, CTLFLAG_RW | CTLFLAG_MPSAFE, 0,
|
||||
"Cryptographically Secure Random Number Generator");
|
||||
SYSCTL_NODE(_kern_random, OID_AUTO, initial_seeding, CTLFLAG_RW, 0,
|
||||
SYSCTL_NODE(_kern_random, OID_AUTO, initial_seeding,
|
||||
CTLFLAG_RW | CTLFLAG_MPSAFE, 0,
|
||||
"Initial seeding control and information");
|
||||
|
||||
/*
|
||||
|
Loading…
x
Reference in New Issue
Block a user