Messages in this thread | ![/](/images/icornerl.gif) | | Subject | Re: [BUG] test9 ACPI bad: scheduling while atomic! | From | Alex Williamson <> | Date | Mon, 27 Oct 2003 09:47:09 -0700 |
| |
On Mon, 2003-10-27 at 01:22, Noah J. Misch wrote:
> This problem stems from the changes in revision 1.26 of drivers/acpi/ec.c. > They come from a patch Shaohua Li submitted for kernel bug 1171 at > bugme.osdl.org. That patch can cause acpi_ec_gpe_query to run in interrupt > context, whereas before it always ran from a workqueue. It does non-interrupt > like things, like sleeping and kmalloc'ing with GFP_KERNEL. > > This was obvious on my system because it has no ECDT table, and as such > acpi_ec_gpe_query was _always_ running in interrupt context, whereas with an > ECDT it would only do so for a brief time during boot, and the problem would be > much more subtle. That's probably why nobody noticed this in earlier tests. >
I don't have an ECDT either. Is it possible that the setting of ec_device_init = 1 is simply misplaced? I can see why we wouldn't want to call acpi_os_queue_for_execution() early in bootup, but there ought to be a fixed point after which it's ok, regardless of whether the system has the ECDT table. Would it be sufficient to set ec_device_init to 1 at the beginning of acpi_ec_add(), with no dependency on the ECDT table?
Alex
-- Alex Williamson HP Linux & Open Source Lab
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| ![\](/images/icornerr.gif) |