panic in AcpiExReleaseMutex
Moore, Robert
robert.moore at intel.com
Fri Dec 4 18:45:23 UTC 2009
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 at icyb.net.ua]
>Sent: Thursday, December 03, 2009 9:24 PM
>To: Moore, Robert
>Cc: freebsd-acpi at 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
More information about the freebsd-acpi
mailing list