From 9e951f36f1102fd9cdaa050db3c665f606bacfbe Mon Sep 17 00:00:00 2001 From: David Greenman Date: Sun, 16 Jul 1995 05:39:22 +0000 Subject: [PATCH] Truncate the fault address to a page boundry when calling vm_fault(). The last change to fix the fault-twice bug with page tables wasn't quite complete. --- sys/amd64/amd64/trap.c | 6 +++--- sys/i386/i386/trap.c | 6 +++--- sys/kern/subr_trap.c | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/sys/amd64/amd64/trap.c b/sys/amd64/amd64/trap.c index 7731ebb8062..17ad97db1ee 100644 --- a/sys/amd64/amd64/trap.c +++ b/sys/amd64/amd64/trap.c @@ -35,7 +35,7 @@ * SUCH DAMAGE. * * from: @(#)trap.c 7.4 (Berkeley) 5/13/91 - * $Id: trap.c,v 1.53 1995/06/11 19:31:14 rgrimes Exp $ + * $Id: trap.c,v 1.54 1995/07/14 09:25:51 davidg Exp $ */ /* @@ -465,7 +465,7 @@ trap_pfault(frame, usermode) /* Fault the pte only if needed: */ if (*((int *)vtopte(v)) == 0) - (void) vm_fault(map, v, VM_PROT_WRITE, FALSE); + (void) vm_fault(map, trunc_page(v), VM_PROT_WRITE, FALSE); pmap_use_pt( vm_map_pmap(map), va); @@ -583,7 +583,7 @@ trap_pfault(frame, usermode) /* Fault the pte only if needed: */ if (*((int *)vtopte(v)) == 0) - (void) vm_fault(map, v, VM_PROT_WRITE, FALSE); + (void) vm_fault(map, trunc_page(v), VM_PROT_WRITE, FALSE); pmap_use_pt( vm_map_pmap(map), va); diff --git a/sys/i386/i386/trap.c b/sys/i386/i386/trap.c index 7731ebb8062..17ad97db1ee 100644 --- a/sys/i386/i386/trap.c +++ b/sys/i386/i386/trap.c @@ -35,7 +35,7 @@ * SUCH DAMAGE. * * from: @(#)trap.c 7.4 (Berkeley) 5/13/91 - * $Id: trap.c,v 1.53 1995/06/11 19:31:14 rgrimes Exp $ + * $Id: trap.c,v 1.54 1995/07/14 09:25:51 davidg Exp $ */ /* @@ -465,7 +465,7 @@ trap_pfault(frame, usermode) /* Fault the pte only if needed: */ if (*((int *)vtopte(v)) == 0) - (void) vm_fault(map, v, VM_PROT_WRITE, FALSE); + (void) vm_fault(map, trunc_page(v), VM_PROT_WRITE, FALSE); pmap_use_pt( vm_map_pmap(map), va); @@ -583,7 +583,7 @@ trap_pfault(frame, usermode) /* Fault the pte only if needed: */ if (*((int *)vtopte(v)) == 0) - (void) vm_fault(map, v, VM_PROT_WRITE, FALSE); + (void) vm_fault(map, trunc_page(v), VM_PROT_WRITE, FALSE); pmap_use_pt( vm_map_pmap(map), va); diff --git a/sys/kern/subr_trap.c b/sys/kern/subr_trap.c index 7731ebb8062..17ad97db1ee 100644 --- a/sys/kern/subr_trap.c +++ b/sys/kern/subr_trap.c @@ -35,7 +35,7 @@ * SUCH DAMAGE. * * from: @(#)trap.c 7.4 (Berkeley) 5/13/91 - * $Id: trap.c,v 1.53 1995/06/11 19:31:14 rgrimes Exp $ + * $Id: trap.c,v 1.54 1995/07/14 09:25:51 davidg Exp $ */ /* @@ -465,7 +465,7 @@ trap_pfault(frame, usermode) /* Fault the pte only if needed: */ if (*((int *)vtopte(v)) == 0) - (void) vm_fault(map, v, VM_PROT_WRITE, FALSE); + (void) vm_fault(map, trunc_page(v), VM_PROT_WRITE, FALSE); pmap_use_pt( vm_map_pmap(map), va); @@ -583,7 +583,7 @@ trap_pfault(frame, usermode) /* Fault the pte only if needed: */ if (*((int *)vtopte(v)) == 0) - (void) vm_fault(map, v, VM_PROT_WRITE, FALSE); + (void) vm_fault(map, trunc_page(v), VM_PROT_WRITE, FALSE); pmap_use_pt( vm_map_pmap(map), va);