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, ot=
herwise 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 thin=
k
>that is the problem.
>>
>>>    PreviousSyncLevel =3D
>>>        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 NUL=
L
>a
>few lines above.
>
>
>--
>Andriy Gapon



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