On 20-07-08 13:10, Arjan van de Ven wrote:May have found an issue with 3/3 for this same reason. You make the ACPI button driver async but acpi_wakeup_device_init() is a late_initcall and comments that it interacts with the button driver. The button driver could be a module so a complete reversal of ordering between acpi_wakeup_device() and acpi_button_init() might in itself not be a problem (undeterministic order even with the button driver builtin might be undesireable I guess) but ... Correct me if I'm wrong but I believe your patch implies that we could be racing between acpi_wakeup_device() and acpi_button_init()? If yes, do bad things happen when we race checking dev->wakeup.state.enabled? As far as I can see, the acpi_device_lock isn't serialising here so if we have just done the acpi_enable_gpe() in acpi_button_add() but haven't set the enabled flag yet we could do it again here it seems. The ACPI button driver doesn't appear to have a specific maintainer and Len Brown was on vacation I believe but this would ideally like a comment from that side... I worry... Makes sense in this specific case. Generally, utility of late_initcall() does seem to be impacted by this. Unless you can be sure that every device you depend on is and always will be sync you might as well be device_initcall() yourself after all. Yes, I did note the bit about the endpoint probing already being async for example for USB but now you can't even be sure that it _started_ meaning you also couldn't really devise some private synchronization mechanism either. Rene. --
| Mariusz Kozlowski | [PATCH 01] kmalloc + memset conversion co kzalloc |
| Rafael J. Wysocki | [Bug #10629] 2.6.26-rc1-$sha1: RIP __d_lookup+0x8c/0x160 |
| Vladislav Bolkhovitin | Re: Integration of SCST in the mainstream Linux kernel |
| Jeff Garzik | Re: [RFC] Heads up on sys_fallocate() |
git: | |
| Linus Torvalds | Re: [GIT]: Networking |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Andrew Morton | Re: [BUG] New Kernel Bugs |
