PERFORCE change 94088 for review

Olivier Houchard cognet at FreeBSD.org
Sun Mar 26 22:21:30 UTC 2006


http://perforce.freebsd.org/chv.cgi?CH=94088

Change 94088 by cognet at 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);


More information about the p4-projects mailing list