From owner-cvs-src@FreeBSD.ORG Mon Jul 24 22:25:17 2006 Return-Path: <owner-cvs-src@FreeBSD.ORG> 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 4B0C916A4E2; Mon, 24 Jul 2006 22:25:17 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1C07043D46; Mon, 24 Jul 2006 22:25:17 +0000 (GMT) (envelope-from marcel@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id k6OMPGCX048243; Mon, 24 Jul 2006 22:25:17 GMT (envelope-from marcel@repoman.freebsd.org) Received: (from marcel@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id k6OMPG61048242; Mon, 24 Jul 2006 22:25:16 GMT (envelope-from marcel) Message-Id: <200607242225.k6OMPG61048242@repoman.freebsd.org> From: Marcel Moolenaar <marcel@FreeBSD.org> Date: Mon, 24 Jul 2006 22:25:16 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/sys/dev/scc scc_core.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree <cvs-src.freebsd.org> List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/cvs-src>, <mailto:cvs-src-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/cvs-src> List-Post: <mailto:cvs-src@freebsd.org> List-Help: <mailto:cvs-src-request@freebsd.org?subject=help> List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/cvs-src>, <mailto:cvs-src-request@freebsd.org?subject=subscribe> X-List-Received-Date: Mon, 24 Jul 2006 22:25:17 -0000 marcel 2006-07-24 22:25:16 UTC FreeBSD src repository Modified files: sys/dev/scc scc_core.c Log: If we have multiple interrupt resources, like for Z8530 clones on the mac-io bus, we cannot setup FAST interrupt handlers. This because we use spinlocks to protect the hardware and all interrupt resources are assigned the same interrupt handler. When the interrupt handler is invoked for interrupt X, it could be preempted for interrupt Y while it was holding the lock (where X and Y are the interrupt resources corresponding a single instance of this driver). This is a deadlock. By only using a MPSAFE handler in that case we prevent preemption. Revision Changes Path 1.4 +13 -11 src/sys/dev/scc/scc_core.c