summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/alpha/alpha/pmap.c3
-rw-r--r--sys/dev/agp/agp.c2
-rw-r--r--sys/dev/agp/agp_i810.c2
-rw-r--r--sys/pci/agp.c2
-rw-r--r--sys/pci/agp_i810.c2
-rw-r--r--sys/vm/vm_kern.c2
-rw-r--r--sys/vm/vm_page.c2
7 files changed, 2 insertions, 13 deletions
diff --git a/sys/alpha/alpha/pmap.c b/sys/alpha/alpha/pmap.c
index 11571cb..30afacb 100644
--- a/sys/alpha/alpha/pmap.c
+++ b/sys/alpha/alpha/pmap.c
@@ -1194,8 +1194,6 @@ _pmap_allocpte(pmap, ptepindex)
VM_OBJECT_LOCK(pmap->pm_pteobj);
m = vm_page_grab(pmap->pm_pteobj, ptepindex,
VM_ALLOC_WIRED | VM_ALLOC_ZERO | VM_ALLOC_RETRY);
- if ((m->flags & PG_ZERO) == 0)
- pmap_zero_page(m);
KASSERT(m->queue == PQ_NONE,
("_pmap_allocpte: %p->queue != PQ_NONE", m));
@@ -1242,7 +1240,6 @@ _pmap_allocpte(pmap, ptepindex)
vm_page_lock_queues();
m->valid = VM_PAGE_BITS_ALL;
- vm_page_flag_clear(m, PG_ZERO);
vm_page_wakeup(m);
vm_page_unlock_queues();
if (!is_object_locked)
diff --git a/sys/dev/agp/agp.c b/sys/dev/agp/agp.c
index fc4fd1f..f507aa6 100644
--- a/sys/dev/agp/agp.c
+++ b/sys/dev/agp/agp.c
@@ -524,8 +524,6 @@ agp_generic_bind_memory(device_t dev, struct agp_memory *mem,
m = vm_page_grab(mem->am_obj, OFF_TO_IDX(i),
VM_ALLOC_WIRED | VM_ALLOC_ZERO | VM_ALLOC_RETRY);
VM_OBJECT_UNLOCK(mem->am_obj);
- if ((m->flags & PG_ZERO) == 0)
- pmap_zero_page(m);
AGP_DPF("found page pa=%#x\n", VM_PAGE_TO_PHYS(m));
/*
diff --git a/sys/dev/agp/agp_i810.c b/sys/dev/agp/agp_i810.c
index 9210247..30aca50 100644
--- a/sys/dev/agp/agp_i810.c
+++ b/sys/dev/agp/agp_i810.c
@@ -612,8 +612,6 @@ agp_i810_alloc_memory(device_t dev, int type, vm_size_t size)
m = vm_page_grab(mem->am_obj, 0,
VM_ALLOC_WIRED | VM_ALLOC_ZERO | VM_ALLOC_RETRY);
VM_OBJECT_UNLOCK(mem->am_obj);
- if ((m->flags & PG_ZERO) == 0)
- pmap_zero_page(m);
vm_page_lock_queues();
mem->am_physical = VM_PAGE_TO_PHYS(m);
vm_page_wakeup(m);
diff --git a/sys/pci/agp.c b/sys/pci/agp.c
index fc4fd1f..f507aa6 100644
--- a/sys/pci/agp.c
+++ b/sys/pci/agp.c
@@ -524,8 +524,6 @@ agp_generic_bind_memory(device_t dev, struct agp_memory *mem,
m = vm_page_grab(mem->am_obj, OFF_TO_IDX(i),
VM_ALLOC_WIRED | VM_ALLOC_ZERO | VM_ALLOC_RETRY);
VM_OBJECT_UNLOCK(mem->am_obj);
- if ((m->flags & PG_ZERO) == 0)
- pmap_zero_page(m);
AGP_DPF("found page pa=%#x\n", VM_PAGE_TO_PHYS(m));
/*
diff --git a/sys/pci/agp_i810.c b/sys/pci/agp_i810.c
index 9210247..30aca50 100644
--- a/sys/pci/agp_i810.c
+++ b/sys/pci/agp_i810.c
@@ -612,8 +612,6 @@ agp_i810_alloc_memory(device_t dev, int type, vm_size_t size)
m = vm_page_grab(mem->am_obj, 0,
VM_ALLOC_WIRED | VM_ALLOC_ZERO | VM_ALLOC_RETRY);
VM_OBJECT_UNLOCK(mem->am_obj);
- if ((m->flags & PG_ZERO) == 0)
- pmap_zero_page(m);
vm_page_lock_queues();
mem->am_physical = VM_PAGE_TO_PHYS(m);
vm_page_wakeup(m);
diff --git a/sys/vm/vm_kern.c b/sys/vm/vm_kern.c
index 1a0af6a..3e21a99 100644
--- a/sys/vm/vm_kern.c
+++ b/sys/vm/vm_kern.c
@@ -198,8 +198,6 @@ kmem_alloc(map, size)
mem = vm_page_grab(kernel_object, OFF_TO_IDX(offset + i),
VM_ALLOC_ZERO | VM_ALLOC_RETRY);
- if ((mem->flags & PG_ZERO) == 0)
- pmap_zero_page(mem);
mem->valid = VM_PAGE_BITS_ALL;
vm_page_lock_queues();
vm_page_unmanage(mem);
diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c
index 789ad98..45e3fc9 100644
--- a/sys/vm/vm_page.c
+++ b/sys/vm/vm_page.c
@@ -1460,6 +1460,8 @@ retrylookup:
return NULL;
goto retrylookup;
}
+ if (allocflags & VM_ALLOC_ZERO && (m->flags & PG_ZERO) == 0)
+ pmap_zero_page(m);
return m;
}
OpenPOWER on IntegriCloud