Re: [linux-pm] [BUG] sleeping function called from invalid contextduring resume

From: Alan Stern
Date: Mon Jul 10 2006 - 11:19:48 EST


On Mon, 10 Jul 2006, Brown, Len wrote:

> Okay, if system_state is off limits, there here is what I've got
> (interesting part is the last 20 lines)
>
> ACPI: acpi_os_allocate() fixes
>
> Replace acpi_in_resume with a more general hack
> to check irqs_disabled() on any kmalloc() from ACPI.
> While setting (system_state != SYSTEM_RUNNING) on resume
> seemed more general, Andrew Morton preferred this approach.

I'm not sure how you would like to handle this, but a similar fix needs to
be made in drivers/acpi/osl.c:acpi_os_wait_semaphore(). If interrupts are
disabled the timeout argument should be set to 0, so that the routine will
call down_trylock() instead of down() or schedule_timeout_interruptible().

Alan Stern

-
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/