From owner-p4-projects@FreeBSD.ORG Sat Jun 7 04:33:05 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 136DB37B404; Sat, 7 Jun 2003 04:33:05 -0700 (PDT) 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 9235D37B401 for ; Sat, 7 Jun 2003 04:33:04 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3ACFC43F93 for ; Sat, 7 Jun 2003 04:33:04 -0700 (PDT) (envelope-from jmallett@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 h57BX40U035720 for ; Sat, 7 Jun 2003 04:33:04 -0700 (PDT) (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h57BX3KK035717 for perforce@freebsd.org; Sat, 7 Jun 2003 04:33:03 -0700 (PDT) Date: Sat, 7 Jun 2003 04:33:03 -0700 (PDT) Message-Id: <200306071133.h57BX3KK035717@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jmallett@freebsd.org using -f From: Juli Mallett To: Perforce Change Reviews Subject: PERFORCE change 32740 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 Jun 2003 11:33:06 -0000 http://perforce.freebsd.org/chv.cgi?CH=32740 Change 32740 by jmallett@jmallett_dalek on 2003/06/07 04:32:03 Call TLBMod (and others, in time) handler before deciding this is quite a _fatal_ trap. Affected files ... .. //depot/projects/mips/sys/mips/mips/trap.c#8 edit Differences ... ==== //depot/projects/mips/sys/mips/mips/trap.c#8 (text+ko) ==== @@ -84,6 +84,20 @@ code = (cause & MIPS3_CR_EXC_CODE) >> MIPS_CR_EXC_CODE_SHIFT; kernelmode = (tf->tf_regs[TF_SR] & MIPS_SR_KSU_USER) == 0; + + /* + * Handle that which we can. + */ + switch (code) { + case T_TLB_MOD: + /* XXX Kernel only. */ + tlb_modified(badvaddr); + return; + default: + /* Fatal! */ + break; + } + printf("\n\nFatal trap type %d in %s mode:", code, kernelmode ? "kernel" : "user"); if (code <= MAXTRAPID && code >= 0) { @@ -109,10 +123,6 @@ kdb_trap(code, tf); break; #endif - case T_TLB_MOD: - /* XXX Kernel only. */ - pmap_tlb_modified(badvaddr); - return; default: goto dopanic; }