diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2009-02-08 21:40:14 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2009-02-08 21:40:14 +0000 |
commit | 11f6e365339fb77ee766be771dcdfa5e0a461e17 (patch) | |
tree | a5bc994e14c6315fac03e5ba581ec7d15a0cf190 /sys | |
parent | 1f77ae95d0a3e53359673faba32edee99f228a6b (diff) |
Don't bother trying to recover from DSR_WE data faults in kernel mode,
pmap makes sure these can't happen.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/arch/m88k/m88k/trap.c | 38 |
1 files changed, 1 insertions, 37 deletions
diff --git a/sys/arch/m88k/m88k/trap.c b/sys/arch/m88k/m88k/trap.c index ea2f7d7efeb..395f220dfbc 100644 --- a/sys/arch/m88k/m88k/trap.c +++ b/sys/arch/m88k/m88k/trap.c @@ -1,4 +1,4 @@ -/* $OpenBSD: trap.c,v 1.65 2009/02/01 00:52:19 miod Exp $ */ +/* $OpenBSD: trap.c,v 1.66 2009/02/08 21:40:13 miod Exp $ */ /* * Copyright (c) 2004, Miodrag Vallat. * Copyright (c) 1998 Steve Murphree, Jr. @@ -784,42 +784,6 @@ lose: KERNEL_UNLOCK(); return; } - } else - if (frame->tf_dsr & CMMU_DSR_WE) { /* write fault */ - /* - * This could be a write protection fault or an - * exception to set the used and modified bits - * in the pte. Basically, if we got a write error, - * then we already have a pte entry that faulted - * in from a previous seg fault or page fault. - * Get the pte and check the status of the - * modified and valid bits to determine if this - * indeed a real write fault. XXX smurph - */ - if (pmap_set_modify(map->pmap, va)) { -#ifdef TRAPDEBUG - printf("Corrected kernel write fault, pmap %p va %p\n", - map->pmap, va); -#endif - KERNEL_UNLOCK(); - return; -#if 0 /* shouldn't happen */ - } else { - /* must be a real wp fault */ -#ifdef TRAPDEBUG - printf("Uncorrected kernel write fault, pmap %p va %p\n", - map->pmap, va); -#endif - if ((pcb_onfault = p->p_addr->u_pcb.pcb_onfault) != 0) - p->p_addr->u_pcb.pcb_onfault = 0; - result = uvm_fault(map, va, VM_FAULT_INVALID, ftype); - p->p_addr->u_pcb.pcb_onfault = pcb_onfault; - if (result == 0) { - KERNEL_UNLOCK(); - return; - } -#endif - } } KERNEL_UNLOCK(); goto lose; |