diff options
author | sam <sam@FreeBSD.org> | 2002-10-11 17:34:00 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2002-10-11 17:34:00 +0000 |
commit | adba3a43801e2c015612d60cb13a09ae5ba9e8af (patch) | |
tree | 4b0486920aa5c112f5ca8718eb4a11ec9e9842d9 | |
parent | 4c7b07a1ef3d72cb8fb30d03fe680a758e80daad (diff) | |
download | FreeBSD-src-adba3a43801e2c015612d60cb13a09ae5ba9e8af.zip FreeBSD-src-adba3a43801e2c015612d60cb13a09ae5ba9e8af.tar.gz |
No need to hold Giant will harvesting RNG data; change callout_init so
this no longer happens for callbacks.
-rw-r--r-- | sys/dev/hifn/hifn7751.c | 3 | ||||
-rw-r--r-- | sys/dev/ubsec/ubsec.c | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/sys/dev/hifn/hifn7751.c b/sys/dev/hifn/hifn7751.c index 8909a09..2aad05a 100644 --- a/sys/dev/hifn/hifn7751.c +++ b/sys/dev/hifn/hifn7751.c @@ -470,7 +470,8 @@ hifn_attach(device_t dev) if (sc->sc_flags & (HIFN_HAS_PUBLIC | HIFN_HAS_RNG)) hifn_init_pubrng(sc); - callout_init(&sc->sc_tickto, 0); + /* NB: 1 means the callout runs w/o Giant locked */ + callout_init(&sc->sc_tickto, 1); callout_reset(&sc->sc_tickto, hz, hifn_tick, sc); return (0); diff --git a/sys/dev/ubsec/ubsec.c b/sys/dev/ubsec/ubsec.c index 415bd49..95b629f 100644 --- a/sys/dev/ubsec/ubsec.c +++ b/sys/dev/ubsec/ubsec.c @@ -426,7 +426,8 @@ ubsec_attach(device_t dev) sc->sc_rnghz = hz / 100; else sc->sc_rnghz = 1; - callout_init(&sc->sc_rngto, 0); + /* NB: 1 means the callout runs w/o Giant locked */ + callout_init(&sc->sc_rngto, 1); callout_reset(&sc->sc_rngto, sc->sc_rnghz, ubsec_rng, sc); skip_rng: ; |