From owner-cvs-src@FreeBSD.ORG Sun Jun 26 19:44:54 2005 Return-Path: X-Original-To: cvs-src@freebsd.org Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EAF4316A41C; Sun, 26 Jun 2005 19:44:54 +0000 (GMT) (envelope-from bde@zeta.org.au) Received: from mailout1.pacific.net.au (mailout1.pacific.net.au [61.8.0.84]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8339A43D55; Sun, 26 Jun 2005 19:44:54 +0000 (GMT) (envelope-from bde@zeta.org.au) Received: from mailproxy2.pacific.net.au (mailproxy2.pacific.net.au [61.8.0.87]) by mailout1.pacific.net.au (8.13.4/8.13.4/Debian-3) with ESMTP id j5QJiqF6006800; Mon, 27 Jun 2005 05:44:52 +1000 Received: from katana.zip.com.au (katana.zip.com.au [61.8.7.246]) by mailproxy2.pacific.net.au (8.13.4/8.13.4/Debian-3) with ESMTP id j5QJioS3000421; Mon, 27 Jun 2005 05:44:51 +1000 Date: Mon, 27 Jun 2005 05:44:50 +1000 (EST) From: Bruce Evans X-X-Sender: bde@delplex.bde.org To: Marcel Moolenaar In-Reply-To: <7c65ef6b909f86fa7f5a8aa041773a72@xcllnt.net> Message-ID: <20050627050618.W34733@delplex.bde.org> References: <200506252214.j5PMEgip000380@repoman.freebsd.org> <7c65ef6b909f86fa7f5a8aa041773a72@xcllnt.net> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: Stephan Uphoff , cvs-src@freebsd.org, src-committers@freebsd.org, cvs-all@freebsd.org Subject: Re: cvs commit: src/sys/i386/i386 trap.c src/sys/amd64/amd64 trap.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Jun 2005 19:44:55 -0000 On Sat, 25 Jun 2005, Marcel Moolenaar wrote: > On Jun 25, 2005, at 3:14 PM, Stephan Uphoff wrote: > >> ups 2005-06-25 22:14:42 UTC >> >> FreeBSD src repository >> >> Modified files: >> sys/i386/i386 trap.c >> sys/amd64/amd64 trap.c >> Log: >> Disable the interrupts in trap_fatal before calling kdb_trap. >> (required now that critical sections no longer block interrupts) > > Why does this only apply to i386 and amd64? Because it is a wrong fix. Many arches used to hard-disable interrupts in their MD kdb_trap(), but this rotted to critical_enter() in rev.1.1 of subr_kdb.c. "Many arches": alpha: used intr_disable(), but misplaced it so that it didn't protect the state global amd64: used disable_intr() correctly arm: used only splhigh() i386: used disable_intr() correctly ia64: used intr_disable() correctly sparc64: no locking except that given by cndbctl() Loss of cndbctl() for all arches in rev.1.1 of subr_kdb.c is more serious. critical_enter() blocks most things, but calling cndbctl() is critical for the console drivers that depend on it to keep track of when console i/o is done from within ddb. Mainly syscons depends on it. Calls to cndbctl() used to only be missing for arm. Bruce