When iterating over a paging queue, explicitly check for PG_MARKER, instead
of relying on zeroed memory being interpreted as an empty PV list. Reviewed by: kib
This commit is contained in:
parent
a8229fa37c
commit
80788b2a27
@ -2104,7 +2104,7 @@ pmap_collect(pmap_t locked_pmap, struct vpgqueues *vpq)
|
||||
vm_page_t m, free;
|
||||
|
||||
TAILQ_FOREACH(m, &vpq->pl, pageq) {
|
||||
if (m->hold_count || m->busy)
|
||||
if ((m->flags & PG_MARKER) != 0 || m->hold_count || m->busy)
|
||||
continue;
|
||||
TAILQ_FOREACH_SAFE(pv, &m->md.pv_list, pv_list, next_pv) {
|
||||
va = pv->pv_va;
|
||||
|
@ -2188,7 +2188,7 @@ pmap_collect(pmap_t locked_pmap, struct vpgqueues *vpq)
|
||||
|
||||
sched_pin();
|
||||
TAILQ_FOREACH(m, &vpq->pl, pageq) {
|
||||
if (m->hold_count || m->busy)
|
||||
if ((m->flags & PG_MARKER) != 0 || m->hold_count || m->busy)
|
||||
continue;
|
||||
TAILQ_FOREACH_SAFE(pv, &m->md.pv_list, pv_list, next_pv) {
|
||||
va = pv->pv_va;
|
||||
|
@ -2012,7 +2012,7 @@ pmap_collect(pmap_t locked_pmap, struct vpgqueues *vpq)
|
||||
|
||||
sched_pin();
|
||||
TAILQ_FOREACH(m, &vpq->pl, pageq) {
|
||||
if (m->hold_count || m->busy)
|
||||
if ((m->flags & PG_MARKER) != 0 || m->hold_count || m->busy)
|
||||
continue;
|
||||
TAILQ_FOREACH_SAFE(pv, &m->md.pv_list, pv_list, next_pv) {
|
||||
va = pv->pv_va;
|
||||
|
@ -774,7 +774,7 @@ get_pv_entry(pmap_t locked_pmap)
|
||||
vpq = &vm_page_queues[PQ_INACTIVE];
|
||||
retry:
|
||||
TAILQ_FOREACH(m, &vpq->pl, pageq) {
|
||||
if (m->hold_count || m->busy)
|
||||
if ((m->flags & PG_MARKER) != 0 || m->hold_count || m->busy)
|
||||
continue;
|
||||
TAILQ_FOREACH_SAFE(pv, &m->md.pv_list, pv_list, next_pv) {
|
||||
va = pv->pv_va;
|
||||
|
@ -1414,7 +1414,7 @@ get_pv_entry(pmap_t locked_pmap)
|
||||
vpq = &vm_page_queues[PQ_INACTIVE];
|
||||
retry:
|
||||
TAILQ_FOREACH(m, &vpq->pl, pageq) {
|
||||
if (m->hold_count || m->busy)
|
||||
if ((m->flags & PG_MARKER) != 0 || m->hold_count || m->busy)
|
||||
continue;
|
||||
TAILQ_FOREACH_SAFE(pv, &m->md.pv_list, pv_list, next_pv) {
|
||||
va = pv->pv_va;
|
||||
|
Loading…
x
Reference in New Issue
Block a user