Index: kern/subr_pool.c =================================================================== RCS file: /cvsroot/src/sys/kern/subr_pool.c,v retrieving revision 1.178 diff -u -p -u -r1.178 subr_pool.c --- kern/subr_pool.c 30 Dec 2009 18:57:17 -0000 1.178 +++ kern/subr_pool.c 2 Jan 2010 09:17:47 -0000 @@ -593,6 +593,7 @@ pool_subsystem_init(void) struct pool_allocator *pa; mutex_init(&pool_head_lock, MUTEX_DEFAULT, IPL_NONE); + mutex_init(&pool_allocator_lock, MUTEX_DEFAULT, IPL_NONE); cv_init(&pool_busy, "poolbusy"); while ((pa = SLIST_FIRST(&pa_deferinitq)) != NULL) { @@ -607,8 +608,6 @@ pool_subsystem_init(void) pool_init(&cache_cpu_pool, sizeof(pool_cache_cpu_t), coherency_unit, 0, 0, "pcachecpu", &pool_allocator_nointr, IPL_NONE); - - mutex_init(&pool_allocator_lock, MUTEX_DEFAULT, IPL_NONE); } /* Index: uvm/uvm_init.c =================================================================== RCS file: /cvsroot/src/sys/uvm/uvm_init.c,v retrieving revision 1.36 diff -u -p -u -r1.36 uvm_init.c --- uvm/uvm_init.c 21 Oct 2009 21:12:07 -0000 1.36 +++ uvm/uvm_init.c 2 Jan 2010 09:17:47 -0000 @@ -94,6 +94,15 @@ uvm_init(void) memset(&uvm, 0, sizeof(uvm)); averunnable.fscale = FSCALE; + + /* + * Initialize pools. This must be done before anyone initializes + * any pools or manipulates any vm_maps because pool_init uses a + * mutex and we use a pool for some map entry structures. + */ + + pool_subsystem_init(); + uvm_amap_init(); /* @@ -153,13 +162,6 @@ uvm_init(void) uvm_loan_init(); /* - * Initialize pools. This must be done before anyone manipulates - * any vm_maps because we use a pool for some map entry structures. - */ - - pool_subsystem_init(); - - /* * init slab memory allocator kmem(9). */