Skip site navigation (1)Skip section navigation (2)
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>