From owner-freebsd-bugs@FreeBSD.ORG Tue Feb 9 17:53:17 2010 Return-Path: Delivered-To: freebsd-bugs@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 30651106566C for ; Tue, 9 Feb 2010 17:53:17 +0000 (UTC) (envelope-from avg@icyb.net.ua) Received: from citadel.icyb.net.ua (citadel.icyb.net.ua [212.40.38.140]) by mx1.freebsd.org (Postfix) with ESMTP id 0D95F8FC12 for ; Tue, 9 Feb 2010 17:53:15 +0000 (UTC) Received: from odyssey.starpoint.kiev.ua (alpha-e.starpoint.kiev.ua [212.40.38.101]) by citadel.icyb.net.ua (8.8.8p3/ICyb-2.3exp) with ESMTP id TAA17463 for ; Tue, 09 Feb 2010 19:41:46 +0200 (EET) (envelope-from avg@icyb.net.ua) Resent-From: Andriy Gapon Resent-To: freebsd-bugs@FreeBSD.org Resent-Date: Tue, 9 Feb 2010 19:41:45 +0200 Resent-Message-Id: <4B719E59.4010909@icyb.net.ua> Resent-User-Agent: Mozilla/5.0 (X11; U; FreeBSD amd64; en-US; rv:1.8.1.23) Gecko/20091206 Lightning/0.9 Thunderbird/2.0.0.23 Path: news.gmane.org!not-for-mail From: Lin Ming Newsgroups: gmane.os.freebsd.bugs,gmane.os.freebsd.devel.acpi Date: Tue, 02 Feb 2010 10:40:23 +0800 Message-ID: <1265078423.14186.15.camel@minggr.sh.intel.com> References: <4911F71203A09E4D9981D27F9D83085855BBCFC8@orsmsx503.amr.corp.intel.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-+akFnwk/NjPxo18vPa8t" X-Trace: ger.gmane.org 1265081201 1727 80.91.229.12 (2 Feb 2010 03:26:41 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 2 Feb 2010 03:26:41 +0000 (UTC) To: linimon@FreeBSD.org, freebsd-bugs@FreeBSD.org, freebsd-acpi@FreeBSD.org Original-X-From: owner-freebsd-bugs@freebsd.org Tue Feb 02 04:26:37 2010 Envelope-to: freebsd-bugs@m.gmane.org Original-Received: from mx2.freebsd.org ([69.147.83.53]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Nc9PA-0007j4-AV for freebsd-bugs@m.gmane.org; Tue, 02 Feb 2010 04:26:20 +0100 Original-Received: from hub.freebsd.org (hub.freebsd.org [IPv6:2001:4f8:fff6::36]) by mx2.freebsd.org (Postfix) with ESMTP id 8D36B152A5E; Tue, 2 Feb 2010 03:25:40 +0000 (UTC) Original-Received: from hub.freebsd.org (localhost [127.0.0.1]) by hub.freebsd.org (Postfix) with ESMTP id 5454D1065697; Tue, 2 Feb 2010 03:25:40 +0000 (UTC) (envelope-from owner-freebsd-bugs@freebsd.org) Original-Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B97CE106566C; Tue, 2 Feb 2010 03:25:32 +0000 (UTC) (envelope-from ming.m.lin@intel.com) Original-Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mx1.freebsd.org (Postfix) with ESMTP id 993298FC13; Tue, 2 Feb 2010 03:25:32 +0000 (UTC) Original-Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga102.fm.intel.com with ESMTP; 01 Feb 2010 18:56:11 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.49,387,1262592000"; d="scan'208";a="769230647" Original-Received: from minggr.sh.intel.com (HELO [10.239.13.174]) ([10.239.13.174]) by fmsmga001.fm.intel.com with ESMTP; 01 Feb 2010 18:57:15 -0800 In-Reply-To: <4911F71203A09E4D9981D27F9D83085855BBCFC8@orsmsx503.amr.corp.intel.com> X-Mailer: Evolution 2.24.1 (2.24.1-2.fc10) X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Original-Sender: owner-freebsd-bugs@freebsd.org Errors-To: owner-freebsd-bugs@FreeBSD.org Xref: news.gmane.org gmane.os.freebsd.bugs:46654 gmane.os.freebsd.devel.acpi:5955 Archived-At: X-Mailman-Approved-At: Tue, 09 Feb 2010 20:28:47 +0000 Cc: "Moore, Robert" Subject: Re: kern/143432: [acpi] [patch] Two bugs in acpica in AcpiExReleaseMutex X-BeenThere: freebsd-bugs@freebsd.org List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Feb 2010 17:53:17 -0000 --=-+akFnwk/NjPxo18vPa8t Content-Type: text/plain Content-Transfer-Encoding: 7bit Problem 1 was already fixed in release 20091214, see http://git.moblin.org/cgit.cgi/acpica/commit/?id=93324dd734d70c4aa451c3aa24dfe91b7b8ef7f9 Problem 2 is same with http://www.freebsd.org/cgi/query-pr.cgi?pr=140979 and fixed by the attached patch. We will merge it into next release. Lin Ming > -----Original Message----- > From: owner-freebsd-acpi@freebsd.org [mailto:owner-freebsd-acpi@freebsd.org] On Behalf Of linimon@FreeBSD.org > Sent: Monday, February 01, 2010 4:08 PM > To: linimon@FreeBSD.org; freebsd-bugs@FreeBSD.org; freebsd-acpi@FreeBSD.org > Subject: Re: kern/143432: [acpi] [patch] Two bugs in acpica in AcpiExReleaseMutex > > Old Synopsis: Two bugs in acpica in AcpiExReleaseMutex > New Synopsis: [acpi] [patch] Two bugs in acpica in AcpiExReleaseMutex > > Responsible-Changed-From-To: freebsd-bugs->freebsd-acpi > Responsible-Changed-By: linimon > Responsible-Changed-When: Tue Feb 2 00:07:42 UTC 2010 > Responsible-Changed-Why: > Over to maintainer(s). > > http://www.freebsd.org/cgi/query-pr.cgi?pr=143432 > _______________________________________________ > freebsd-acpi@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-acpi > To unsubscribe, send any mail to "freebsd-acpi-unsubscribe@freebsd.org" --=-+akFnwk/NjPxo18vPa8t Content-Disposition: attachment; filename="mutex.patch" Content-Type: text/x-patch; name="mutex.patch"; charset="UTF-8" Content-Transfer-Encoding: 7bit diff --git a/source/components/executer/exmutex.c b/source/components/executer/exmutex.c index d0aa9de..0a4048d 100644 --- a/source/components/executer/exmutex.c +++ b/source/components/executer/exmutex.c @@ -471,6 +471,7 @@ AcpiExReleaseMutex ( { ACPI_STATUS Status = AE_OK; UINT8 PreviousSyncLevel; + ACPI_THREAD_STATE *OwnerThread; ACPI_FUNCTION_TRACE (ExReleaseMutex); @@ -481,9 +482,11 @@ AcpiExReleaseMutex ( return_ACPI_STATUS (AE_BAD_PARAMETER); } + OwnerThread = ObjDesc->Mutex.OwnerThread; + /* The mutex must have been previously acquired in order to release it */ - if (!ObjDesc->Mutex.OwnerThread) + if (!OwnerThread) { ACPI_ERROR ((AE_INFO, "Cannot release Mutex [%4.4s], not acquired", AcpiUtGetNodeName (ObjDesc->Mutex.Node))); @@ -503,14 +506,14 @@ AcpiExReleaseMutex ( * The Mutex is owned, but this thread must be the owner. * Special case for Global Lock, any thread can release */ - if ((ObjDesc->Mutex.OwnerThread->ThreadId != WalkState->Thread->ThreadId) && + if ((OwnerThread->ThreadId != WalkState->Thread->ThreadId) && (ObjDesc != AcpiGbl_GlobalLockMutex)) { ACPI_ERROR ((AE_INFO, "Thread %p cannot release Mutex [%4.4s] acquired by thread %p", ACPI_CAST_PTR (void, WalkState->Thread->ThreadId), AcpiUtGetNodeName (ObjDesc->Mutex.Node), - ACPI_CAST_PTR (void, ObjDesc->Mutex.OwnerThread->ThreadId))); + ACPI_CAST_PTR (void, OwnerThread->ThreadId))); return_ACPI_STATUS (AE_AML_NOT_OWNER); } @@ -521,7 +524,7 @@ AcpiExReleaseMutex ( * different level can only mean that the mutex ordering rule is being * violated. This behavior is clarified in ACPI 4.0 specification. */ - if (ObjDesc->Mutex.SyncLevel != WalkState->Thread->CurrentSyncLevel) + if (ObjDesc->Mutex.SyncLevel != OwnerThread->CurrentSyncLevel) { ACPI_ERROR ((AE_INFO, "Cannot release Mutex [%4.4s], SyncLevel mismatch: mutex %d current %d", @@ -536,7 +539,7 @@ AcpiExReleaseMutex ( * acquired, but are not released in reverse order. */ PreviousSyncLevel = - WalkState->Thread->AcquiredMutexList->Mutex.OriginalSyncLevel; + OwnerThread->AcquiredMutexList->Mutex.OriginalSyncLevel; Status = AcpiExReleaseMutexObject (ObjDesc); if (ACPI_FAILURE (Status)) @@ -548,7 +551,7 @@ AcpiExReleaseMutex ( { /* Restore the previous SyncLevel */ - WalkState->Thread->CurrentSyncLevel = PreviousSyncLevel; + OwnerThread->CurrentSyncLevel = PreviousSyncLevel; } return_ACPI_STATUS (Status); } --=-+akFnwk/NjPxo18vPa8t Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ freebsd-bugs@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-bugs To unsubscribe, send any mail to "freebsd-bugs-unsubscribe@freebsd.org" --=-+akFnwk/NjPxo18vPa8t--