From b75bd60a04dd5e8c3ecc06d0ee64fd83d67a110f Mon Sep 17 00:00:00 2001 From: Justin Hibbits Date: Mon, 22 Jul 2019 22:59:50 +0000 Subject: [PATCH] powerpc: Unbreak 64-bit pmap from 350206 oldpvo is never explicitly NULL'd by moea64_pvo_enter(), so don't check for NULL to do anything, only check error. PR: 239372 Reported by: Francis Little --- sys/powerpc/aim/mmu_oea64.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/sys/powerpc/aim/mmu_oea64.c b/sys/powerpc/aim/mmu_oea64.c index 474e00f5f7ba..8c7b1cff23b4 100644 --- a/sys/powerpc/aim/mmu_oea64.c +++ b/sys/powerpc/aim/mmu_oea64.c @@ -1449,13 +1449,13 @@ moea64_enter(mmu_t mmu, pmap_t pmap, vm_offset_t va, vm_page_t m, KASSERT(oldpvo->pvo_pmap == pmap, ("pmap of old " "mapping does not match new mapping")); moea64_pvo_remove_from_pmap(mmu, oldpvo); - error = moea64_pvo_enter(mmu, pvo, pvo_head, NULL); + moea64_pvo_enter(mmu, pvo, pvo_head, NULL); } PV_PAGE_UNLOCK(m); PMAP_UNLOCK(pmap); /* Free any dead pages */ - if (oldpvo != NULL) { + if (error == EEXIST) { moea64_pvo_remove_from_page(mmu, oldpvo); free_pvo_entry(oldpvo); } @@ -2521,8 +2521,6 @@ moea64_pvo_enter(mmu_t mmu, struct pvo_entry *pvo, struct pvo_head *pvo_head, struct pvo_entry *old_pvo; PMAP_LOCK_ASSERT(pvo->pvo_pmap, MA_OWNED); - KASSERT(moea64_pvo_find_va(pvo->pvo_pmap, PVO_VADDR(pvo)) == NULL, - ("Existing mapping for VA %#jx", (uintmax_t)PVO_VADDR(pvo))); moea64_pvo_enter_calls++;