From owner-svn-src-user@FreeBSD.ORG Thu Sep 29 08:15:25 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D58351065673; Thu, 29 Sep 2011 08:15:25 +0000 (UTC) (envelope-from mavbsd@gmail.com) Received: from mail-fx0-f54.google.com (mail-fx0-f54.google.com [209.85.161.54]) by mx1.freebsd.org (Postfix) with ESMTP id 424978FC13; Thu, 29 Sep 2011 08:15:24 +0000 (UTC) Received: by fxg9 with SMTP id 9so2044168fxg.13 for ; Thu, 29 Sep 2011 01:15:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:x-enigmail-version:content-type :content-transfer-encoding; bh=dnEn1LCeuQ4uKvFizt59vsTa6zfLZJqE0utFByjpQLo=; b=fVQ54CYbxTyvgUlvw0gD0YeFS6PJybQdxcyabdDT+Ue5cRxNatOazqquIgmzXgW6K+ YgKdp/kMPOUq3ZREOUR/PRI9qej5Zmxu45YwuYAQI/ssDiqNbWjJuBexnNSEhbTqiLtw lCfeEzUT9E84YEQuwq9F4NCfiYa/hRmGEETHA= Received: by 10.223.50.21 with SMTP id x21mr5254312faf.24.1317282360867; Thu, 29 Sep 2011 00:46:00 -0700 (PDT) Received: from mavbook2.mavhome.dp.ua (pc.mavhome.dp.ua. [212.86.226.226]) by mx.google.com with ESMTPS id u6sm1105464fan.17.2011.09.29.00.45.59 (version=SSLv3 cipher=OTHER); Thu, 29 Sep 2011 00:46:00 -0700 (PDT) Sender: Alexander Motin Message-ID: <4E84222F.7050101@FreeBSD.org> Date: Thu, 29 Sep 2011 10:45:51 +0300 From: Alexander Motin User-Agent: Thunderbird 2.0.0.23 (X11/20091212) MIME-Version: 1.0 To: Adrian Chadd References: <201109290310.p8T3AgZO001901@svn.freebsd.org> In-Reply-To: <201109290310.p8T3AgZO001901@svn.freebsd.org> X-Enigmail-Version: 0.96.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Cc: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: Re: svn commit: r225860 - user/adrian/if_ath_tx/sys/mips/mips X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Sep 2011 08:15:25 -0000 Adrian Chadd wrote: > Author: adrian > Date: Thu Sep 29 03:10:42 2011 > New Revision: 225860 > URL: http://svn.freebsd.org/changeset/base/225860 > + m = intr_disable(); > if (!busy) { > critical_enter(); > cpu_idleclock(); > } > - __asm __volatile ("wait"); > + > + if (sched_runnable()) > + intr_restore(m); > + else { > + /* XXX not atomic! */ > + intr_restore(m); > + __asm __volatile ("wait\n"); > + } > + I think that's not good to call intr_disable() before cpu_idleclock(). cpu_idleclock() uses spin mutex to serialize timer hardware accesses, which disables interrupts. When it enable them back, it will revert effect of your intr_disable() also. -- Alexander Motin