Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 17 Nov 2002 19:43:35 -0800 (PST)
From:      Marcel Moolenaar <marcel@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 21206 for review
Message-ID:  <200211180343.gAI3hZb2049245@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=21206

Change 21206 by marcel@marcel_nfs on 2002/11/17 19:43:18

	Handle multiple gateway pages. Not really important, but
	less limited.

Affected files ...

.. //depot/projects/ia64/sys/ia64/ia64/pmap.c#47 edit
.. //depot/projects/ia64/sys/ia64/ia64/trap.c#38 edit
.. //depot/projects/ia64/sys/ia64/include/pmap.h#8 edit

Differences ...

==== //depot/projects/ia64/sys/ia64/ia64/pmap.c#47 (text+ko) ====

@@ -1779,15 +1779,17 @@
 }
 
 int
-pmap_wire_syscall_page(pmap)
+pmap_wire_syscall_page(pmap, va)
 	pmap_t pmap;
+	vm_offset_t va;
 {
+	vm_offset_t d, pa;
 	struct ia64_lpte *pte;
 
-	pte = pmap_find_pte(VM_MAX_ADDRESS);
-	pmap_set_pte(pte, VM_MAX_ADDRESS,
-	    IA64_RR_MASK((u_int64_t)ia64_syscall_page), PTE_IG_MANAGED,
-	    PTE_PL_KERN, PTE_AR_X_RX);
+	d = va - VM_MAX_ADDRESS;
+	pa = IA64_RR_MASK((u_int64_t)ia64_syscall_page) + d;
+	pte = pmap_find_pte(va);
+	pmap_set_pte(pte, va, pa, PTE_IG_MANAGED, PTE_PL_KERN, PTE_AR_X_RX);
 	return (0);
 }
 

==== //depot/projects/ia64/sys/ia64/ia64/trap.c#38 (text+ko) ====

@@ -562,8 +562,8 @@
 			vm = (p != NULL) ? p->p_vmspace : NULL;
 			if (vm == NULL)
 				goto no_fault_in;
-			if (va == VM_MAX_ADDRESS) {
-				if (!pmap_wire_syscall_page(&vm->vm_pmap))
+			if (va >= VM_MAX_ADDRESS) {
+				if (!pmap_wire_syscall_page(&vm->vm_pmap, va))
 					goto out;
 			}
 			map = &vm->vm_map;

==== //depot/projects/ia64/sys/ia64/include/pmap.h#8 (text+ko) ====

@@ -137,7 +137,7 @@
 void	pmap_set_opt	(unsigned *);
 void	pmap_set_opt_bsp	(void);
 struct pmap *pmap_install(struct pmap *pmap);
-int	pmap_wire_syscall_page(struct pmap *pmap);
+int	pmap_wire_syscall_page(struct pmap *pmap, vm_offset_t);
 
 #endif /* _KERNEL */
 

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe p4-projects" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200211180343.gAI3hZb2049245>