Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 4 Dec 2009 10:45:11 -0800
From:      "Moore, Robert" <robert.moore@intel.com>
To:        Andriy Gapon <avg@icyb.net.ua>
Cc:        "freebsd-acpi@freebsd.org" <freebsd-acpi@freebsd.org>, Tarick <tungan@ukr.net>
Subject:   RE: panic in AcpiExReleaseMutex
Message-ID:  <4911F71203A09E4D9981D27F9D8308583E8F2A1F@orsmsx503.amr.corp.intel.com>
In-Reply-To: <4B189CD6.30906@icyb.net.ua>
References:  <4B178387.4050601@icyb.net.ua> <4911F71203A09E4D9981D27F9D8308583E8F26CF@orsmsx503.amr.corp.intel.com> <4B189CD6.30906@icyb.net.ua>

next in thread | previous in thread | raw e-mail | index | archive | help

Yes, you are correct. I did not have the code in front of me at the time.

When AcpiExReleaseMutex is called, apparently the mutex is in fact held, otherwise the function would have aborted immediately.

When the mutex is held, the Thread->AcquiredMutexList is expected to hold (at the minimum) the mutex object being released. Something is very wrong if this list is NULL when releasing the mutex.

Just to make sure: All of this is happening in the same thread?



>-----Original Message-----
>From: Andriy Gapon [mailto:avg@icyb.net.ua]
>Sent: Thursday, December 03, 2009 9:24 PM
>To: Moore, Robert
>Cc: freebsd-acpi@freebsd.org; Tarick
>Subject: Re: panic in AcpiExReleaseMutex
>
>on 04/12/2009 06:57 Moore, Robert said the following:
>>> I am somewhat suspicious of recursive use of \_SB.PCI0.LPC0.EC0.MUT1
>>
>> It is OK for AML code to acquire a mutex multiple times, so I don't think
>that is the problem.
>>
>>>    PreviousSyncLevel =
>>>        WalkState->Thread->AcquiredMutexList->Mutex.OriginalSyncLevel;
>>
>> Multiple pointers here, do you know which one is null?
>>
>
>It must be AcquiredMutexList, because WalkState->Thread is checked for NULL
>a
>few lines above.
>
>
>--
>Andriy Gapon



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4911F71203A09E4D9981D27F9D8308583E8F2A1F>