Re: ACPI notify handler and reentrancy of WMI device.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Jan 20, 2011 at 11:00 AM, Corentin Chary
<corentin.chary@xxxxxxxxx> wrote:
> On Thu, Jan 20, 2011 at 10:55 AM, Lin Ming <ming.m.lin@xxxxxxxxx> wrote:
>> On Mon, 2011-01-17 at 14:51 +0800, Corentin Chary wrote:
>>> >> I got an acpi notify handler. The notify is triggered when I call WMBC().
>>> >> In this notify handler, I must re-call WMBC (with some other arguments, it won't
>>> >> notify again this time).
>>> >>
>>> >> If I do that, I'll get:
>>> >> [ Â176.920391] ACPI Error (dswload-0802): [_T_0] Namespace lookup
>>> >> failure, AE_ALREADY_EXISTS
>>> >> [ Â176.920416] ACPI Exception: AE_ALREADY_EXISTS, During name
>>> >> lookup/catalog (20100428/psloop-231)
>>> >> [ Â176.920439] ACPI Error (psparse-0537): Method parse/execution
>>> >> failed [\AMW0.WMBC] (Node f7023b88), AE_ALREADY_EXISTS
>>> >> [ Â176.920469] ACPI: Marking method WMBC as Serialized because of
>>> >> AE_ALREADY_EXISTS error
>>> >
>>> > Could you attach the acpidump output?
>>>
>>> Here it is, and here is the patch I did (I used the workqueue solution
>>> in this one):
>>>
>>> http://git.iksaif.net/?p=acpi4asus.git;a=blobdiff;f=drivers/platform/x86/eeepc-wmi.c;h=725239860bad8d97dabf8b3db4086d6df4b7820b;hp=0d8217d1478028071859ba1a503ba226b3cb33a0;hb=1eac4d6a6fb632314a464e7d52e1dcb1e4780931;hpb=5c5d1a036bb7d38153c6d2102767ef51e5d94ce3
>>>
>>> (check eeepc_rfkill_notify, it's triggered when the wlan rfkill is
>>> blocked: WMBC is called to disable the wlan card, it send a
>>> notification, the handler is called, the handler want to check the
>>> wlan card status, it calls WMBC again).
>>> Thanks;
>>>
>>
>> Sorry for late reply.
>>
>> WMBC is not an ACPI spec defined method (which always start with "_",
>> _ADR, _DSW etc), the driver should only call ACPI spec defined method.
>> What does this method do?
>>
>> And, I don't see any call to WMBC in eeepc-wmi.c or above patch.
>
> It's a wmi driver, so it calls wmi_evaluate_method, wich internally
> will call \AMW0.WMBC for this GUID.
> Sorry for the confusion.
>
> I finally found a solut^W^W workaround:
> http://git.iksaif.net/?p=acpi4asus.git;a=commitdiff;h=aa8ff8f23b2f99da9371da9154d3e523b964f054;hp=d13f17d9657d7161884e289cc2ac6efb414a6ff9

As I thought, using a mutex here introduce a lot of potential deadlock ...
Any Idea ?


-- 
Corentin Chary
http://xf.iksaif.net
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux