From 8b5842f905f898fedbcdd76ce107465582367de6 Mon Sep 17 00:00:00 2001 From: dm120769 Date: Fri, 29 Jun 2007 13:44:49 -0700 Subject: backout 6569219: causes 6574819 --- usr/src/uts/i86pc/vm/htable.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 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 20762e2cd0..44718d836d 100644 --- a/usr/src/uts/i86pc/vm/htable.c +++ b/usr/src/uts/i86pc/vm/htable.c @@ -1432,13 +1432,9 @@ htable_walk( * Find the level of the largest pagesize used by this HAT. */ max_mapped_level = 0; - if (hat->hat_ism_pgcnt > 0) { - max_mapped_level = mmu.max_page_level; - } else { - for (l = 1; l <= mmu.max_page_level; ++l) - if (hat->hat_pages_mapped[l] != 0) - max_mapped_level = l; - } + for (l = 1; l <= mmu.max_page_level; ++l) + if (hat->hat_pages_mapped[l] != 0) + max_mapped_level = l; while (va < eaddr && va >= *vaddr) { ASSERT(!IN_VA_HOLE(va)); @@ -1459,14 +1455,21 @@ htable_walk( break; } + /* + * The ht is never NULL at the top level since + * the top level htable is created in hat_alloc(). + */ + ASSERT(l < TOP_LEVEL(hat)); + /* * No htable covers the address. If there is no * larger page size that could cover it, we * skip to the start of the next page table. */ - ASSERT(l < TOP_LEVEL(hat)); - if (l >= max_mapped_level) + if (l >= max_mapped_level) { va = NEXT_ENTRY_VA(va, l + 1); + break; + } } } -- cgit v1.2.3