From owner-cvs-all Wed Feb 21 21:32:15 2001 Delivered-To: cvs-all@freebsd.org Received: from meow.osd.bsdi.com (meow.osd.bsdi.com [204.216.28.88]) by hub.freebsd.org (Postfix) with ESMTP id 6D20137B491; Wed, 21 Feb 2001 21:32:09 -0800 (PST) (envelope-from jhb@FreeBSD.org) Received: from laptop.baldwin.cx (john@jhb-laptop.osd.bsdi.com [204.216.28.241]) by meow.osd.bsdi.com (8.11.2/8.11.2) with ESMTP id f1M5U4l76667; Wed, 21 Feb 2001 21:30:04 -0800 (PST) (envelope-from jhb@FreeBSD.org) Message-ID: X-Mailer: XFMail 1.4.0 on FreeBSD X-Priority: 3 (Normal) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 8bit MIME-Version: 1.0 In-Reply-To: <200102220218.f1M2IX081475@freefall.freebsd.org> Date: Wed, 21 Feb 2001 21:31:55 -0800 (PST) From: John Baldwin To: cvs-all@FreeBSD.org Subject: RE: cvs commit: src/sys/kern kern_intr.c src/sys/sys interrupt.h Cc: cvs-committers@FreeBSD.org Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On 22-Feb-01 John Baldwin wrote: > jhb 2001/02/21 18:18:33 PST > > Modified files: > sys/kern kern_intr.c > sys/sys interrupt.h > Log: > Work around a race condition where an interrupt handler can be removed from > an interrupt thread while the interrupt thread is blocked on Giant waiting > to execute the interrupt handler being removed. The result was that the > intrhand structure would be free'd, and we would call 0xdeadc0de. The work > around is to check to see if the interrupt thread is idle when removing a > handler. If not, then we mark the interrupt handler as being dead using > the new IH_DEAD flag and don't remove it from the interrupt threads' list > of handlers. When the interrupt thread resumes, it will see a dead handler > while traversing the list of handlers and will remove the handler then. This should fix hte pccard insert/ejection panics. -- John Baldwin -- http://www.FreeBSD.org/~jhb/ PGP Key: http://www.baldwin.cx/~john/pgpkey.asc "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message