summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorjake <jake@FreeBSD.org>2002-06-29 06:37:24 +0000
committerjake <jake@FreeBSD.org>2002-06-29 06:37:24 +0000
commitc5b25f086b162fd806d5b15ac3490a9c214d2e28 (patch)
treed320009b0b86eafa6a3ba29ca8152f2a331e0622 /sys
parentad903dff1e670b3104d3b51be75a076e555088b7 (diff)
downloadFreeBSD-src-c5b25f086b162fd806d5b15ac3490a9c214d2e28.zip
FreeBSD-src-c5b25f086b162fd806d5b15ac3490a9c214d2e28.tar.gz
Fix a deletion during traversal tailq bug.
Diffstat (limited to 'sys')
-rw-r--r--sys/sparc64/sparc64/pmap.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/sparc64/sparc64/pmap.c b/sys/sparc64/sparc64/pmap.c
index 6df4225..6d7eafd 100644
--- a/sys/sparc64/sparc64/pmap.c
+++ b/sys/sparc64/sparc64/pmap.c
@@ -1200,7 +1200,8 @@ pmap_release(pmap_t pm)
KASSERT(pmap_resident_count(pm) == 0,
("pmap_release: resident pages %ld != 0",
pmap_resident_count(pm)));
- TAILQ_FOREACH(m, &obj->memq, listq) {
+ while (!TAILQ_EMPTY(&obj->memq)) {
+ m = TAILQ_FIRST(&obj->memq);
if (vm_page_sleep_busy(m, FALSE, "pmaprl"))
continue;
vm_page_busy(m);
OpenPOWER on IntegriCloud