View | Details | Raw Unified | Return to bug 153062
Collapse All | Expand All

(-)linux-2.6.15/drivers/acpi/osl.c (-5 / +9 lines)
Lines 139-148 void acpi_os_vprintf(const char *fmt, va Link Here
139
}
139
}
140
140
141
141
142
extern int acpi_in_resume;
143
void *acpi_os_allocate(acpi_size size)
142
void *acpi_os_allocate(acpi_size size)
144
{
143
{
145
	if (acpi_in_resume)
144
	if (in_atomic() || irqs_disabled() || in_interrupt())
146
		return kmalloc(size, GFP_ATOMIC);
145
		return kmalloc(size, GFP_ATOMIC);
147
	else
146
	else
148
		return kmalloc(size, GFP_KERNEL);
147
		return kmalloc(size, GFP_KERNEL);
Lines 880-886 acpi_status acpi_os_wait_semaphore(acpi_ Link Here
880
	ACPI_DEBUG_PRINT((ACPI_DB_MUTEX, "Waiting for semaphore[%p|%d|%d]\n",
879
	ACPI_DEBUG_PRINT((ACPI_DB_MUTEX, "Waiting for semaphore[%p|%d|%d]\n",
881
			  handle, units, timeout));
880
			  handle, units, timeout));
882
881
883
	if (in_atomic())
882
	if (in_atomic() || irqs_disabled() || in_interrupt())
884
		timeout = 0;
883
		timeout = 0;
885
884
886
	switch (timeout) {
885
	switch (timeout) {
Lines 1009-1015 u8 acpi_os_writable(void *ptr, acpi_size Link Here
1009
1008
1010
u32 acpi_os_get_thread_id(void)
1009
u32 acpi_os_get_thread_id(void)
1011
{
1010
{
1012
	if (!in_atomic())
1011
	if (!in_atomic() && !irqs_disabled() && !in_interrupt())
1013
		return current->pid;
1012
		return current->pid;
1014
1013
1015
	return 0;
1014
	return 0;
Lines 1252-1258 acpi_status acpi_os_release_object(acpi_ Link Here
1252
1251
1253
void *acpi_os_acquire_object(acpi_cache_t * cache)
1252
void *acpi_os_acquire_object(acpi_cache_t * cache)
1254
{
1253
{
1255
	void *object = kmem_cache_alloc(cache, GFP_KERNEL);
1254
	void *object;
1255
1256
	if (in_atomic() || irqs_disabled() || in_interrupt())
1257
		object = kmem_cache_alloc(cache, GFP_ATOMIC);
1258
	else
1259
		object = kmem_cache_alloc(cache, GFP_KERNEL);
1256
	WARN_ON(!object);
1260
	WARN_ON(!object);
1257
	return object;
1261
	return object;
1258
}
1262
}
(-)linux-2.6.15/drivers/acpi/utils.c (-1 / +6 lines)
Lines 27-32 Link Here
27
#include <linux/module.h>
27
#include <linux/module.h>
28
#include <linux/init.h>
28
#include <linux/init.h>
29
#include <linux/types.h>
29
#include <linux/types.h>
30
#include <linux/interrupt.h>
30
#include <acpi/acpi_bus.h>
31
#include <acpi/acpi_bus.h>
31
#include <acpi/acpi_drivers.h>
32
#include <acpi/acpi_drivers.h>
32
33
Lines 264-270 acpi_evaluate_integer(acpi_handle handle Link Here
264
	if (!data)
265
	if (!data)
265
		return_ACPI_STATUS(AE_BAD_PARAMETER);
266
		return_ACPI_STATUS(AE_BAD_PARAMETER);
266
267
267
	element = kmalloc(sizeof(union acpi_object), GFP_KERNEL);
268
	if (in_atomic() || irqs_disabled() || in_interrupt())
269
		element = kmalloc(sizeof(union acpi_object), GFP_ATOMIC);
270
	else
271
		element = kmalloc(sizeof(union acpi_object), GFP_KERNEL);
272
268
	if (!element)
273
	if (!element)
269
		return_ACPI_STATUS(AE_NO_MEMORY);
274
		return_ACPI_STATUS(AE_NO_MEMORY);
270
275

Return to bug 153062