CVSROOT: /cvs Module name: src Changes by: dera...@cvs.openbsd.org 2011/01/06 21:56:52
Modified files: sys/dev : rnd.c rndvar.h Log message: substantial rewrite. put a very thin mutex at the entropy-collection side so that entropy events can come in from any kernel context. place a 2nd very thin mutex at the call-down path as well, so that any context can request random data. in the middle, meet with a bcopy that has no mutex, but copying unlocked data is actually a benefit. move the pool->MD5->RC4init sequence into a workq driven from a timeout, so that we can do all the heavy work without any mutex held or IPL; only grab the 2nd mutex to swap to a new RC4 state. (this workq design from tedu) ok dlg tedu