# HG changeset patch # User Taylor R Campbell <riastradh@NetBSD.org> # Date 1590760688 0 # Fri May 29 13:58:08 2020 +0000 # Branch trunk # Node ID c9e459bf90698d319124720c06ce51c41dbdbf6b # Parent 9c1370fde50d664cc3bd6c5260ec01a17ae212d0 # EXP-Topic riastradh-sysmonrndinit Don't queue sysmon refresh until the rndsource is attached. Using the rndsource, as refreshing the sensors will do, is not allowed until _after_ rnd_source_attach. diff -r 9c1370fde50d -r c9e459bf9069 sys/dev/sysmon/sysmon_envsys.c --- a/sys/dev/sysmon/sysmon_envsys.c Thu May 28 17:07:27 2020 +0000 +++ b/sys/dev/sysmon/sysmon_envsys.c Fri May 29 13:58:08 2020 +0000 @@ -824,16 +824,6 @@ out: if (error == 0) { nevent = 0; - if (sme->sme_flags & SME_INIT_REFRESH) { - sysmon_task_queue_sched(0, sme_initial_refresh, sme); - DPRINTF(("%s: scheduled initial refresh for '%s'\n", - __func__, sme->sme_name)); - } - SLIST_FOREACH(evdv, &sme_evdrv_list, evdrv_head) { - sysmon_task_queue_sched(0, - sme_event_drvadd, evdv->evdrv); - nevent++; - } /* * Hook the sensor into rnd(4) entropy pool if requested */ @@ -889,6 +879,17 @@ out: rnd_type, rnd_flag); } } + + if (sme->sme_flags & SME_INIT_REFRESH) { + sysmon_task_queue_sched(0, sme_initial_refresh, sme); + DPRINTF(("%s: scheduled initial refresh for '%s'\n", + __func__, sme->sme_name)); + } + SLIST_FOREACH(evdv, &sme_evdrv_list, evdrv_head) { + sysmon_task_queue_sched(0, + sme_event_drvadd, evdv->evdrv); + nevent++; + } DPRINTF(("%s: driver '%s' registered (nsens=%d nevent=%d)\n", __func__, sme->sme_name, sme->sme_nsensors, nevent)); }