diff options
Diffstat (limited to 'include/acpi/platform/aclinux.h')
-rw-r--r-- | include/acpi/platform/aclinux.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/include/acpi/platform/aclinux.h b/include/acpi/platform/aclinux.h index 1cb51bf96ece..47faf27913a5 100644 --- a/include/acpi/platform/aclinux.h +++ b/include/acpi/platform/aclinux.h | |||
@@ -105,4 +105,26 @@ | |||
105 | 105 | ||
106 | static inline acpi_thread_id acpi_os_get_thread_id(void) { return current; } | 106 | static inline acpi_thread_id acpi_os_get_thread_id(void) { return current; } |
107 | 107 | ||
108 | /* | ||
109 | * The irqs_disabled() check is for resume from RAM. | ||
110 | * Interrupts are off during resume, just like they are for boot. | ||
111 | * However, boot has (system_state != SYSTEM_RUNNING) | ||
112 | * to quiet __might_sleep() in kmalloc() and resume does not. | ||
113 | */ | ||
114 | #include <acpi/actypes.h> | ||
115 | static inline void *acpi_os_allocate(acpi_size size) { | ||
116 | return kmalloc(size, irqs_disabled() ? GFP_ATOMIC : GFP_KERNEL); | ||
117 | } | ||
118 | static inline void *acpi_os_allocate_zeroed(acpi_size size) { | ||
119 | return kzalloc(size, irqs_disabled() ? GFP_ATOMIC : GFP_KERNEL); | ||
120 | } | ||
121 | |||
122 | static inline void *acpi_os_acquire_object(acpi_cache_t * cache) { | ||
123 | return kmem_cache_zalloc(cache, irqs_disabled() ? GFP_ATOMIC : GFP_KERNEL); | ||
124 | } | ||
125 | |||
126 | #define ACPI_ALLOCATE(a) acpi_os_allocate(a) | ||
127 | #define ACPI_ALLOCATE_ZEROED(a) acpi_os_allocate_zeroed(a) | ||
128 | #define ACPI_FREE(a) kfree(a) | ||
129 | |||
108 | #endif /* __ACLINUX_H__ */ | 130 | #endif /* __ACLINUX_H__ */ |