Date: Sun, 26 Mar 2006 22:21:29 GMT From: Olivier Houchard <cognet@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 94088 for review Message-ID: <200603262221.k2QMLTmH047267@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=94088 Change 94088 by cognet@cognet on 2006/03/26 22:21:19 Try to workaround the panic in pmap_remove_pages() by not attempting to do anything if the pt has already been cleared. This should not happen, so this is by no mean a fix, just a temporary bandaid until I figure out how it happens. Affected files ... .. //depot/projects/arm/src/sys/arm/arm/pmap.c#13 edit Differences ... ==== //depot/projects/arm/src/sys/arm/arm/pmap.c#13 (text+ko) ==== @@ -2833,6 +2833,12 @@ l2b = pmap_get_l2_bucket(pmap, pv->pv_va); KASSERT(l2b != NULL, ("No L2 bucket in pmap_remove_pages")); pt = &l2b->l2b_kva[l2pte_index(pv->pv_va)]; + if ((*pt & L2_ADDR_MASK) == 0) { + npv = TAILQ_NEXT(pv, pv_plist); + TAILQ_REMOVE(&pmap->pm_pvlist, pv, pv_plist); + pmap_free_pv_entry(pv); + continue; + } m = PHYS_TO_VM_PAGE(*pt & L2_ADDR_MASK); *pt = 0; PTE_SYNC(pt);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200603262221.k2QMLTmH047267>