Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/ia64/ia64 Remove size pages from va. Not a page.



details:   https://anonhg.NetBSD.org/src/rev/f18f465cb00c
branches:  trunk
changeset: 785652:f18f465cb00c
user:      kiyohara <kiyohara%NetBSD.org@localhost>
date:      Sun Mar 24 06:27:52 2013 +0000

description:
Remove size pages from va.  Not a page.

diffstat:

 sys/arch/ia64/ia64/pmap.c |  18 +++++++++++-------
 1 files changed, 11 insertions(+), 7 deletions(-)

diffs (39 lines):

diff -r 09735e8e3b81 -r f18f465cb00c sys/arch/ia64/ia64/pmap.c
--- a/sys/arch/ia64/ia64/pmap.c Sun Mar 24 06:06:19 2013 +0000
+++ b/sys/arch/ia64/ia64/pmap.c Sun Mar 24 06:27:52 2013 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: pmap.c,v 1.29 2012/11/05 15:11:36 chs Exp $ */
+/* $NetBSD: pmap.c,v 1.30 2013/03/24 06:27:52 kiyohara Exp $ */
 
 
 /*-
@@ -85,7 +85,7 @@
 
 #include <sys/cdefs.h>
 
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.29 2012/11/05 15:11:36 chs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.30 2013/03/24 06:27:52 kiyohara Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -1026,11 +1026,15 @@
 {
         struct ia64_lpte *pte;
 
-        pte = pmap_find_kpte(va);
-        if (pmap_present(pte)) {
-                pmap_remove_vhpt(va);
-                pmap_invalidate_page(pmap_kernel(), va);
-                pmap_clear_present(pte);
+       while (size > 0) {
+               pte = pmap_find_kpte(va);
+               if (pmap_present(pte)) {
+                       pmap_remove_vhpt(va);
+                       pmap_invalidate_page(pmap_kernel(), va);
+                       pmap_clear_present(pte);
+               }
+               va += PAGE_SIZE;
+               size -= PAGE_SIZE;
         }
 }
 



Home | Main Index | Thread Index | Old Index