From aac11643c466386309a97e46ac9f9a4cad538e5c Mon Sep 17 00:00:00 2001 From: josephb Date: Tue, 10 Apr 2007 12:46:10 -0700 Subject: 6539804 panic[cpu0]/thread=fffffffffbc27f40: boot_mapin(): No pp for pfnum = 1ff849 6540208 assertion failed: (((threadp()))->t_hatdepth & (~(1 << 7))) < 64, file: ../../i86pc/vm/hat_i86.c --- usr/src/uts/i86pc/vm/htable.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'usr/src/uts/i86pc/vm/htable.c') diff --git a/usr/src/uts/i86pc/vm/htable.c b/usr/src/uts/i86pc/vm/htable.c index 52ce7cff44..71a8f3d349 100644 --- a/usr/src/uts/i86pc/vm/htable.c +++ b/usr/src/uts/i86pc/vm/htable.c @@ -276,12 +276,11 @@ htable_adjust_reserve() { htable_t *ht; - ASSERT(curthread != hat_reserves_thread); - /* * Free any excess htables in the reserve list */ - while (htable_reserve_cnt > htable_reserve_amount) { + while (htable_reserve_cnt > htable_reserve_amount && + !USE_HAT_RESERVES()) { ht = htable_get_reserve(); if (ht == NULL) return; @@ -627,7 +626,6 @@ htable_alloc( * Donate successful htable allocations to the reserve. */ for (;;) { - ASSERT(curthread != hat_reserves_thread); ht = kmem_cache_alloc(htable_cache, kmflags); if (ht == NULL) break; @@ -777,10 +775,12 @@ htable_free(htable_t *ht) /* * Free htables or put into reserves. */ - if (USE_HAT_RESERVES() || htable_reserve_cnt < htable_reserve_amount) + if (USE_HAT_RESERVES() || htable_reserve_cnt < htable_reserve_amount) { htable_put_reserve(ht); - else + } else { kmem_cache_free(htable_cache, ht); + htable_adjust_reserve(); + } } -- cgit v1.2.3