Module Name:    src
Committed By:   tls
Date:           Thu Dec  1 19:15:15 UTC 2011

Modified Files:
        src/sys/rump/librump/rumpkern: rump.c

Log Message:
Initialize the kern_cprng in rump startup.  Oops.

Should fix some "mysterious" rump test failures.  Thanks to Nicholas Joly
for pointing out exactly what was wrong.


To generate a diff of this commit:
cvs rdiff -u -r1.236 -r1.237 src/sys/rump/librump/rumpkern/rump.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/rump/librump/rumpkern/rump.c
diff -u src/sys/rump/librump/rumpkern/rump.c:1.236 src/sys/rump/librump/rumpkern/rump.c:1.237
--- src/sys/rump/librump/rumpkern/rump.c:1.236	Sat Nov 26 21:41:02 2011
+++ src/sys/rump/librump/rumpkern/rump.c	Thu Dec  1 19:15:15 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: rump.c,v 1.236 2011/11/26 21:41:02 njoly Exp $	*/
+/*	$NetBSD: rump.c,v 1.237 2011/12/01 19:15:15 tls Exp $	*/
 
 /*
  * Copyright (c) 2007-2011 Antti Kantee.  All Rights Reserved.
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rump.c,v 1.236 2011/11/26 21:41:02 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rump.c,v 1.237 2011/12/01 19:15:15 tls Exp $");
 
 #include <sys/systm.h>
 #define ELFSIZE ARCH_ELFSIZE
@@ -163,19 +163,6 @@ rump_proc_vfs_release_fn rump_proc_vfs_r
 
 static void add_linkedin_modules(const struct modinfo *const *, size_t);
 
-static void __noinline
-messthestack(void)
-{
-	volatile uint32_t mess[64];
-	uint64_t d1, d2;
-	int i, error;
-
-	for (i = 0; i < 64; i++) {
-		rumpuser_gettime(&d1, &d2, &error);
-		mess[i] = d2;
-	}
-}
-
 /*
  * Create kern.hostname.  why only this you ask.  well, init_sysctl
  * is a kitchen sink in need of some gardening.  but i want to use
@@ -328,12 +315,11 @@ rump__init(int rump_version)
 	kauth_init();
 
 	/*
-	 * Seed arc4random() with a "reasonable" amount of randomness.
-	 * Yes, this is a quick kludge which depends on the arc4random
-	 * implementation.
+	 * Create the kernel cprng.  Yes, it's currently stubbed out
+	 * to arc4random() for RUMP, but this won't always be so.
 	 */
-	messthestack();
-	cprng_fast32();
+	kern_cprng = cprng_strong_create("kernel", IPL_VM,
+					 CPRNG_INIT_ANY|CPRNG_REKEY_ANY);
 
 	procinit();
 	proc0_init();

Reply via email to