diff options
author | grehan <grehan@FreeBSD.org> | 2006-12-20 01:10:21 +0000 |
---|---|---|
committer | grehan <grehan@FreeBSD.org> | 2006-12-20 01:10:21 +0000 |
commit | a0ce97439a3ba712e7d861fa80906b24439d288c (patch) | |
tree | ff02202501de5188f9db7a6efaf4b5e8eac97554 /sys/powerpc/aim | |
parent | ca13ed8f4abe4895913b129f7cf4709331b51fc2 (diff) | |
download | FreeBSD-src-a0ce97439a3ba712e7d861fa80906b24439d288c.zip FreeBSD-src-a0ce97439a3ba712e7d861fa80906b24439d288c.tar.gz |
Remove bogus increment of re-hashed PTEG index. This snuck in with r1.12 of
pmap.c, and is potentially the cause of hangs reported on machines with a
small amount of memory. On machines with sufficient RAM, and without a lot
of processes running, this situation would probably never occur.
Testing is still incomplete, but it is obviously wrong so remove the
offending code now.
The issue of what to do when both the primary and secondary hash overflow
is still open.
Reported by: Dan Kresja at windriver dot com, via alc
Diffstat (limited to 'sys/powerpc/aim')
-rw-r--r-- | sys/powerpc/aim/mmu_oea.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/powerpc/aim/mmu_oea.c b/sys/powerpc/aim/mmu_oea.c index ec13d06..d1a0faa 100644 --- a/sys/powerpc/aim/mmu_oea.c +++ b/sys/powerpc/aim/mmu_oea.c @@ -2280,7 +2280,7 @@ moea_pte_insert(u_int ptegidx, struct pte *pvo_pt) * Now try secondary hash. */ ptegidx ^= moea_pteg_mask; - ptegidx++; + for (pt = moea_pteg_table[ptegidx].pt, i = 0; i < 8; i++, pt++) { if ((pt->pte_hi & PTE_VALID) == 0) { pvo_pt->pte_hi |= PTE_HID; |