diff options
author | josephb <none@none> | 2007-04-10 12:46:10 -0700 |
---|---|---|
committer | josephb <none@none> | 2007-04-10 12:46:10 -0700 |
commit | aac11643c466386309a97e46ac9f9a4cad538e5c (patch) | |
tree | a3e59be55799f9a7452c481f3a9c1f44c3df4167 /usr/src/uts/i86pc/vm/htable.c | |
parent | 4c5e0fde93352f23abc94e445999402e38b91268 (diff) | |
download | illumos-gate-aac11643c466386309a97e46ac9f9a4cad538e5c.tar.gz |
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
Diffstat (limited to 'usr/src/uts/i86pc/vm/htable.c')
-rw-r--r-- | usr/src/uts/i86pc/vm/htable.c | 12 |
1 files changed, 6 insertions, 6 deletions
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(); + } } |