Pull up following revision(s) (requested by riastradh in ticket #23):

sys/rump/librump/rumpkern/rump.c: revision 1.310
	sys/rump/librump/rumpkern/rump.c: revision 1.309
	sys/kern/init_main.c: revision 1.459
Defer cprng_fast_init until CPUs are detected.
Restore placement of percpu_init in rump_init.
Probably doesn't matter, but let's avoid needless churn around the
real bug fix.
This commit is contained in:
martin 2014-08-15 12:58:45 +00:00
parent d169d91e01
commit cd89449c74
2 changed files with 11 additions and 9 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: init_main.c,v 1.458 2014/08/10 16:44:36 tls Exp $ */
/* $NetBSD: init_main.c,v 1.458.2.1 2014/08/15 12:58:45 martin Exp $ */
/*-
* Copyright (c) 2008, 2009 The NetBSD Foundation, Inc.
@ -97,7 +97,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: init_main.c,v 1.458 2014/08/10 16:44:36 tls Exp $");
__KERNEL_RCSID(0, "$NetBSD: init_main.c,v 1.458.2.1 2014/08/15 12:58:45 martin Exp $");
#include "opt_ddb.h"
#include "opt_ipsec.h"
@ -501,8 +501,6 @@ main(void)
kern_cprng = cprng_strong_create("kernel", IPL_VM,
CPRNG_INIT_ANY|CPRNG_REKEY_ANY);
cprng_fast_init();
/* Initialize interfaces. */
ifinit1();
@ -514,6 +512,9 @@ main(void)
/* Configure the system hardware. This will enable interrupts. */
configure();
/* Once all CPUs are detected, initialize the per-CPU cprng_fast. */
cprng_fast_init();
ssp_init();
ubc_init(); /* must be after autoconfig */

View File

@ -1,4 +1,4 @@
/* $NetBSD: rump.c,v 1.308 2014/08/11 04:27:24 ozaki-r Exp $ */
/* $NetBSD: rump.c,v 1.308.2.1 2014/08/15 12:58:45 martin 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.308 2014/08/11 04:27:24 ozaki-r Exp $");
__KERNEL_RCSID(0, "$NetBSD: rump.c,v 1.308.2.1 2014/08/15 12:58:45 martin Exp $");
#include <sys/systm.h>
#define ELFSIZE ARCH_ELFSIZE
@ -286,8 +286,6 @@ rump_init(void)
uvm_ra_init();
uao_init();
percpu_init();
mutex_obj_init();
callout_startup();
@ -305,7 +303,6 @@ rump_init(void)
kern_cprng = cprng_strong_create("kernel", IPL_VM,
CPRNG_INIT_ANY|CPRNG_REKEY_ANY);
cprng_fast_init();
rump_hyperentropy_init();
procinit();
@ -328,6 +325,7 @@ rump_init(void)
rump_schedule();
bootlwp = curlwp;
percpu_init();
inittimecounter();
ntp_init();
@ -364,6 +362,9 @@ rump_init(void)
aprint_verbose("cpu%d at thinair0: rump virtual cpu\n", i);
}
/* Once all CPUs are detected, initialize the per-CPU cprng_fast. */
cprng_fast_init();
/* CPUs are up. allow kernel threads to run */
rump_thread_allow(NULL);