]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/acpi/platform/aclinux.h
Pull dock into release branch
[linux-2.6-omap-h63xx.git] / include / acpi / platform / aclinux.h
index 1cb51bf96ece64d4995666989c200e7bc8ec0812..47faf27913a576ccf930d8cbcad1f8a3fc8f2215 100644 (file)
 
 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 <acpi/actypes.h>
+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__ */