From 669890eaeb860ce6c546207378b3fe4b03d4bb2e Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Wed, 8 Oct 2003 05:35:12 +0000 Subject: [PATCH] Retire vm_page_copy(). Its reason for being ended when peter@ modified pmap_copy_page() et al. to accept a vm_page_t rather than a physical address. Also, this change will facilitate locking access to the vm page's valid field. --- sys/vm/vm_fault.c | 6 ++++-- sys/vm/vm_page.c | 20 +++----------------- sys/vm/vm_page.h | 1 - 3 files changed, 7 insertions(+), 20 deletions(-) diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c index 5a4730764dc..279358c7cc5 100644 --- a/sys/vm/vm_fault.c +++ b/sys/vm/vm_fault.c @@ -738,7 +738,8 @@ readrest: /* * Oh, well, lets copy it. */ - vm_page_copy(fs.m, fs.first_m); + pmap_copy_page(fs.m, fs.first_m); + fs.first_m->valid = VM_PAGE_BITS_ALL; } if (fs.m) { /* @@ -1183,7 +1184,8 @@ vm_fault_copy_entry(dst_map, src_map, dst_entry, src_entry) if (src_m == NULL) panic("vm_fault_copy_wired: page missing"); - vm_page_copy(src_m, dst_m); + pmap_copy_page(src_m, dst_m); + dst_m->valid = VM_PAGE_BITS_ALL; /* * Enter it in the pmap... diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c index 0b283ddbf9e..225ad202fc7 100644 --- a/sys/vm/vm_page.c +++ b/sys/vm/vm_page.c @@ -372,18 +372,6 @@ vm_page_unhold(vm_page_t mem) vm_page_free_toq(mem); } -/* - * vm_page_copy: - * - * Copy one page to another - */ -void -vm_page_copy(vm_page_t src_m, vm_page_t dest_m) -{ - pmap_copy_page(src_m, dest_m); - dest_m->valid = VM_PAGE_BITS_ALL; -} - /* * vm_page_free: * @@ -1742,11 +1730,9 @@ vm_page_cowfault(vm_page_t m) vm_page_free(mnew); vm_page_insert(m, object, pindex); } else { /* clear COW & copy page */ - if (so_zerocp_fullpage) { - mnew->valid = VM_PAGE_BITS_ALL; - } else { - vm_page_copy(m, mnew); - } + if (!so_zerocp_fullpage) + pmap_copy_page(m, mnew); + mnew->valid = VM_PAGE_BITS_ALL; vm_page_dirty(mnew); vm_page_flag_clear(mnew, PG_BUSY); } diff --git a/sys/vm/vm_page.h b/sys/vm/vm_page.h index 7a51e034f63..d56f0867843 100644 --- a/sys/vm/vm_page.h +++ b/sys/vm/vm_page.h @@ -342,7 +342,6 @@ void vm_page_io_start(vm_page_t m); void vm_page_io_finish(vm_page_t m); void vm_page_hold(vm_page_t mem); void vm_page_unhold(vm_page_t mem); -void vm_page_copy(vm_page_t src_m, vm_page_t dest_m); void vm_page_free(vm_page_t m); void vm_page_free_zero(vm_page_t m); int vm_page_sleep_if_busy(vm_page_t m, int also_m_busy, const char *msg);