diff options
author | tegge <tegge@FreeBSD.org> | 1998-01-19 04:16:16 +0000 |
---|---|---|
committer | tegge <tegge@FreeBSD.org> | 1998-01-19 04:16:16 +0000 |
commit | dc87409fdea28bc7d0aff0652bd75b07acc1cd47 (patch) | |
tree | 5152ec65394207fc795da8969d60854d0f2c39e6 | |
parent | a4acc2b6f976579bebc0c80d90760486a832f261 (diff) | |
download | FreeBSD-src-dc87409fdea28bc7d0aff0652bd75b07acc1cd47.zip FreeBSD-src-dc87409fdea28bc7d0aff0652bd75b07acc1cd47.tar.gz |
The removal of a page from the free queue in vm_page_zero_idle was
imcomplete. Also set m->queue, in order to prevent vm_page_select_free
from selecting the page being zeroed.
-rw-r--r-- | sys/amd64/amd64/vm_machdep.c | 3 | ||||
-rw-r--r-- | sys/i386/i386/vm_machdep.c | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/sys/amd64/amd64/vm_machdep.c b/sys/amd64/amd64/vm_machdep.c index 0597ca4..6753158 100644 --- a/sys/amd64/amd64/vm_machdep.c +++ b/sys/amd64/amd64/vm_machdep.c @@ -38,7 +38,7 @@ * * from: @(#)vm_machdep.c 7.3 (Berkeley) 5/13/91 * Utah $Hdr: vm_machdep.c 1.16.1.1 89/06/23$ - * $Id: vm_machdep.c,v 1.93 1997/12/27 02:28:28 peter Exp $ + * $Id: vm_machdep.c,v 1.94 1998/01/15 07:32:21 gibbs Exp $ */ #include "npx.h" @@ -941,6 +941,7 @@ vm_page_zero_idle() if (m != NULL) { --(*vm_page_queues[m->queue].lcnt); TAILQ_REMOVE(vm_page_queues[m->queue].pl, m, pageq); + m->queue = PQ_NONE; splx(s); #ifdef SMP rel_mplock(); diff --git a/sys/i386/i386/vm_machdep.c b/sys/i386/i386/vm_machdep.c index 0597ca4..6753158 100644 --- a/sys/i386/i386/vm_machdep.c +++ b/sys/i386/i386/vm_machdep.c @@ -38,7 +38,7 @@ * * from: @(#)vm_machdep.c 7.3 (Berkeley) 5/13/91 * Utah $Hdr: vm_machdep.c 1.16.1.1 89/06/23$ - * $Id: vm_machdep.c,v 1.93 1997/12/27 02:28:28 peter Exp $ + * $Id: vm_machdep.c,v 1.94 1998/01/15 07:32:21 gibbs Exp $ */ #include "npx.h" @@ -941,6 +941,7 @@ vm_page_zero_idle() if (m != NULL) { --(*vm_page_queues[m->queue].lcnt); TAILQ_REMOVE(vm_page_queues[m->queue].pl, m, pageq); + m->queue = PQ_NONE; splx(s); #ifdef SMP rel_mplock(); |