diff options
author | jake <jake@FreeBSD.org> | 2002-06-29 06:37:24 +0000 |
---|---|---|
committer | jake <jake@FreeBSD.org> | 2002-06-29 06:37:24 +0000 |
commit | c5b25f086b162fd806d5b15ac3490a9c214d2e28 (patch) | |
tree | d320009b0b86eafa6a3ba29ca8152f2a331e0622 /sys | |
parent | ad903dff1e670b3104d3b51be75a076e555088b7 (diff) | |
download | FreeBSD-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.c | 3 |
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); |