Re: [BUG] test9 ACPI bad: scheduling while atomic!

From: Alex Williamson
Date: Mon Oct 27 2003 - 11:47:50 EST


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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/