From owner-p4-projects Sun Nov 17 19:46:30 2002 Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 310B937B404; Sun, 17 Nov 2002 19:46:27 -0800 (PST) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BE6FE37B401 for ; Sun, 17 Nov 2002 19:46:26 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 794B143E3B for ; Sun, 17 Nov 2002 19:46:26 -0800 (PST) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id gAI3hamV049248 for ; Sun, 17 Nov 2002 19:43:36 -0800 (PST) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id gAI3hZb2049245 for perforce@freebsd.org; Sun, 17 Nov 2002 19:43:35 -0800 (PST) Date: Sun, 17 Nov 2002 19:43:35 -0800 (PST) Message-Id: <200211180343.gAI3hZb2049245@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar Subject: PERFORCE change 21206 for review To: Perforce Change Reviews Sender: owner-p4-projects@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG 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