suspend & resume RNG subsystem
authorderaadt <deraadt@openbsd.org>
Thu, 18 Dec 2014 17:00:19 +0000 (17:00 +0000)
committerderaadt <deraadt@openbsd.org>
Thu, 18 Dec 2014 17:00:19 +0000 (17:00 +0000)
sys/arch/i386/i386/apm.c

index fe915c3..f16fd6b 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: apm.c,v 1.110 2014/10/17 15:35:31 deraadt Exp $       */
+/*     $OpenBSD: apm.c,v 1.111 2014/12/18 17:00:19 deraadt Exp $       */
 
 /*-
  * Copyright (c) 1998-2001 Michael Shalayeff. All rights reserved.
@@ -50,6 +50,7 @@
 #include <sys/buf.h>
 #include <sys/reboot.h>
 #include <sys/event.h>
+#include <dev/rndvar.h>
 
 #include <machine/conf.h>
 #include <machine/cpu.h>
@@ -253,6 +254,7 @@ apm_suspend(int state)
        s = splhigh();
        disable_intr();
        config_suspend_all(DVACT_SUSPEND);
+       suspend_randomness();
 
        /* XXX
         * Flag to disk drivers that they should "power down" the disk
@@ -276,6 +278,7 @@ apm_suspend(int state)
        enable_intr();
        splx(s);
 
+       resume_randomness();            /* force RNG upper level reseed */
        /* restore hw.setperf */
        if (cpu_setperf != NULL)
                cpu_setperf(perflevel);