From: Len Brown Date: Mon, 10 Jul 2006 06:39:47 +0000 (-0400) Subject: Pull acpi_os_allocate into test branch X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=c0dc250e89cb8af77c5689b36eda851158e8573e;p=linux-beck.git Pull acpi_os_allocate into test branch --- c0dc250e89cb8af77c5689b36eda851158e8573e diff --cc include/acpi/platform/aclinux.h index 1cb51bf96ece,f0118262ac27..47faf27913a5 --- a/include/acpi/platform/aclinux.h +++ b/include/acpi/platform/aclinux.h @@@ -101,8 -100,30 +101,30 @@@ #define acpi_cpu_flags unsigned long -#define acpi_thread_id u32 +#define acpi_thread_id struct task_struct * -static inline acpi_thread_id acpi_os_get_thread_id(void) { return 0; } +static inline acpi_thread_id acpi_os_get_thread_id(void) { return current; } + /* + * The irqs_disabled() check is for resume from RAM. + * Interrupts are off during resume, just like they are for boot. + * However, boot has (system_state != SYSTEM_RUNNING) + * to quiet __might_sleep() in kmalloc() and resume does not. + */ + #include + static inline void *acpi_os_allocate(acpi_size size) { + return kmalloc(size, irqs_disabled() ? GFP_ATOMIC : GFP_KERNEL); + } + static inline void *acpi_os_allocate_zeroed(acpi_size size) { + return kzalloc(size, irqs_disabled() ? GFP_ATOMIC : GFP_KERNEL); + } + + static inline void *acpi_os_acquire_object(acpi_cache_t * cache) { + return kmem_cache_zalloc(cache, irqs_disabled() ? GFP_ATOMIC : GFP_KERNEL); + } + + #define ACPI_ALLOCATE(a) acpi_os_allocate(a) + #define ACPI_ALLOCATE_ZEROED(a) acpi_os_allocate_zeroed(a) + #define ACPI_FREE(a) kfree(a) + #endif /* __ACLINUX_H__ */