From owner-freebsd-arch@FreeBSD.ORG Mon Aug 29 08:34:16 2011 Return-Path: Delivered-To: freebsd-arch@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 04B42106566B for ; Mon, 29 Aug 2011 08:34:16 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from citadel.icyb.net.ua (citadel.icyb.net.ua [212.40.38.140]) by mx1.freebsd.org (Postfix) with ESMTP id 4970B8FC14 for ; Mon, 29 Aug 2011 08:34:15 +0000 (UTC) Received: from porto.starpoint.kiev.ua (porto-e.starpoint.kiev.ua [212.40.38.100]) by citadel.icyb.net.ua (8.8.8p3/ICyb-2.3exp) with ESMTP id LAA28950 for ; Mon, 29 Aug 2011 11:34:13 +0300 (EEST) (envelope-from avg@FreeBSD.org) Received: from localhost ([127.0.0.1]) by porto.starpoint.kiev.ua with esmtp (Exim 4.34 (FreeBSD)) id 1QxxIL-0001K3-M1 for freebsd-arch@freebsd.org; Mon, 29 Aug 2011 11:34:13 +0300 Message-ID: <4E5B4F05.4090505@FreeBSD.org> Date: Mon, 29 Aug 2011 11:34:13 +0300 From: Andriy Gapon User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:6.0) Gecko/20110819 Thunderbird/6.0 MIME-Version: 1.0 To: freebsd-arch@FreeBSD.org References: <4E53986B.5000804@FreeBSD.org> <201108230911.09021.jhb@freebsd.org> <4E564F15.3010809@FreeBSD.org> <201108250945.24606.jhb@freebsd.org> <4E57E5D8.3010606@FreeBSD.org> In-Reply-To: <4E57E5D8.3010606@FreeBSD.org> X-Enigmail-Version: undefined Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: Subject: Re: skipping locks, mutex_owned, usb X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Aug 2011 08:34:16 -0000 on 26/08/2011 21:28 Andriy Gapon said the following: > I do not see how internal state of kbd drivers is protected from races between > interrupts and calls from upper layers. The only possibility that I see is that > kbd interrupt handlers do not directly change the driver state but rather "call > back" into the driver via sckbdevent(). Errm, it was pointed out to me that INTR_MPSAFE flag is not passed to bus_setup_intr() for those interrupts, so the interrupt handlers are executed under the Giant -- Andriy Gapon