--- l2.6.12.2-o/drivers/acpi/osl.c 2005-06-30 01:00:53.000000000 +0200 +++ linux-2.6.12/drivers/acpi/osl.c 2005-07-04 10:01:52.000000000 +0200 @@ -145,7 +145,7 @@ acpi_os_vprintf(const char *fmt, va_list void * acpi_os_allocate(acpi_size size) { - return kmalloc(size, GFP_KERNEL); + return kmalloc(size, GFP_ATOMIC); } void @@ -905,7 +905,7 @@ acpi_os_wait_semaphore( ACPI_DEBUG_PRINT ((ACPI_DB_MUTEX, "Waiting for semaphore[%p|%d|%d]\n", handle, units, timeout)); - if (in_atomic()) + if (in_atomic() || irqs_disabled()) timeout = 0; switch (timeout) --- l2.6.12.2-o/drivers/acpi/pci_link.c 2005-06-30 01:00:53.000000000 +0200 +++ linux-2.6.12/drivers/acpi/pci_link.c 2005-07-04 09:40:53.000000000 +0200 @@ -315,7 +315,7 @@ acpi_pci_link_set ( if (!link || !irq) return_VALUE(-EINVAL); - resource = kmalloc( sizeof(*resource)+1, GFP_KERNEL); + resource = kmalloc( sizeof(*resource)+1, GFP_ATOMIC); if(!resource) return_VALUE(-ENOMEM);