summaryrefslogtreecommitdiff
path: root/UPDATING
diff options
context:
space:
mode:
authorConrad Meyer <cem@FreeBSD.org>2019-12-26 19:32:11 +0000
committerConrad Meyer <cem@FreeBSD.org>2019-12-26 19:32:11 +0000
commit3ee1d5bb9dc2db929b19ca59421d197153dbdc08 (patch)
tree77b0983d76aeae4b202ee38a76066a33518433d2 /UPDATING
parentaf00898b5d7bac6734c407c1d2f4362a08fe4532 (diff)
downloadsrc-test-3ee1d5bb9dc2db929b19ca59421d197153dbdc08.tar.gz
src-test-3ee1d5bb9dc2db929b19ca59421d197153dbdc08.zip
random(4): Simplify RANDOM_LOADABLE
Simplify RANDOM_LOADABLE by removing the ability to unload a LOADABLE random(4) implementation. This allows one-time random module selection at boot, by loader(8). Swapping modules on the fly doesn't seem especially useful. This removes the need to hold a lock over the sleepable module calls read_random and read_random_uio. init/deinit have been pulled out of random_algorithm entirely. Algorithms can run their own sysinits to initialize; deinit is removed entirely, as algorithms can not be unloaded. Algorithms should initialize at SI_SUB_RANDOM:SI_ORDER_SECOND. In LOADABLE systems, algorithms install a pointer to their local random_algorithm context in p_random_alg_context at that time. Go ahead and const'ify random_algorithm objects; there is no need to mutate them at runtime. LOADABLE kernel NULL checks are removed from random_harvestq by ordering random_harvestq initialization at SI_SUB_RANDOM:SI_ORDER_THIRD, after algorithm init. Prior to random_harvestq init, hc_harvest_mask is zero and no events are forwarded to algorithms; after random_harvestq init, the relevant pointers will already have been installed. Remove the bulk of random_infra shim wrappers and instead expose the bare function pointers in sys/random.h. In LOADABLE systems, read_random(9) et al are just thin shim macros around invoking the associated function pointer. We do not provide a registration system but instead expect LOADABLE modules to register themselves at SI_SUB_RANDOM:SI_ORDER_SECOND. An example is provided in randomdev.c, as used in the random_fortuna.ko module. Approved by: csprng(markm) Discussed with: gordon Differential Revision: https://reviews.freebsd.org/D22512
Notes
Notes: svn path=/head/; revision=356096
Diffstat (limited to 'UPDATING')
-rw-r--r--UPDATING3
1 files changed, 3 insertions, 0 deletions
diff --git a/UPDATING b/UPDATING
index becf733734869..12adfb6c0a59c 100644
--- a/UPDATING
+++ b/UPDATING
@@ -26,6 +26,9 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW:
disable the most expensive debugging functionality run
"ln -s 'abort:false,junk:false' /etc/malloc.conf".)
+20191226:
+ Kernel-loadable random(4) modules are no longer unloadable.
+
20191222:
Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have
been upgraded to 9.0.1. Please see the 20141231 entry below for