Re: 2.5.66-bk12: acpi_power_off: sleeping function called from

Andrew Morton (akpm@digeo.com)
Sun, 6 Apr 2003 18:21:23 -0700


Zwane Mwaikambo <zwane@linuxpower.ca> wrote:
>
> - if (in_atomic())
> + if (in_atomic() || irqs_disabled())
> timeout = 0;

Andy, why does the ACPI code have this test?

Is it to determine whether a caller of this functon is currently holding a
spinlock? If so then it will only work on a preemptible kernel.

A non-preempt kernel will not increment preempt_count() when it takes a
spinlock and ACPI could mistakenly schedule away and cause a system deadlock.

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