Pull acpi_os_allocate into test branch
This commit is contained in:
commit
c0dc250e89
6 changed files with 31 additions and 40 deletions
|
@ -136,16 +136,6 @@ void acpi_os_vprintf(const char *fmt, va_list args)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
extern int acpi_in_resume;
|
|
||||||
void *acpi_os_allocate(acpi_size size)
|
|
||||||
{
|
|
||||||
if (acpi_in_resume)
|
|
||||||
return kmalloc(size, GFP_ATOMIC);
|
|
||||||
else
|
|
||||||
return kmalloc(size, GFP_KERNEL);
|
|
||||||
}
|
|
||||||
|
|
||||||
acpi_status acpi_os_get_root_pointer(u32 flags, struct acpi_pointer *addr)
|
acpi_status acpi_os_get_root_pointer(u32 flags, struct acpi_pointer *addr)
|
||||||
{
|
{
|
||||||
if (efi_enabled) {
|
if (efi_enabled) {
|
||||||
|
@ -1115,26 +1105,6 @@ acpi_status acpi_os_release_object(acpi_cache_t * cache, void *object)
|
||||||
return (AE_OK);
|
return (AE_OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*******************************************************************************
|
|
||||||
*
|
|
||||||
* FUNCTION: acpi_os_acquire_object
|
|
||||||
*
|
|
||||||
* PARAMETERS: Cache - Handle to cache object
|
|
||||||
* ReturnObject - Where the object is returned
|
|
||||||
*
|
|
||||||
* RETURN: Status
|
|
||||||
*
|
|
||||||
* DESCRIPTION: Return a zero-filled object.
|
|
||||||
*
|
|
||||||
******************************************************************************/
|
|
||||||
|
|
||||||
void *acpi_os_acquire_object(acpi_cache_t * cache)
|
|
||||||
{
|
|
||||||
void *object = kmem_cache_zalloc(cache, GFP_KERNEL);
|
|
||||||
WARN_ON(!object);
|
|
||||||
return object;
|
|
||||||
}
|
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
*
|
*
|
||||||
* FUNCTION: acpi_os_validate_interface
|
* FUNCTION: acpi_os_validate_interface
|
||||||
|
|
|
@ -139,12 +139,10 @@ union acpi_parse_object *acpi_ps_alloc_op(u16 opcode)
|
||||||
/* The generic op (default) is by far the most common (16 to 1) */
|
/* The generic op (default) is by far the most common (16 to 1) */
|
||||||
|
|
||||||
op = acpi_os_acquire_object(acpi_gbl_ps_node_cache);
|
op = acpi_os_acquire_object(acpi_gbl_ps_node_cache);
|
||||||
memset(op, 0, sizeof(struct acpi_parse_obj_common));
|
|
||||||
} else {
|
} else {
|
||||||
/* Extended parseop */
|
/* Extended parseop */
|
||||||
|
|
||||||
op = acpi_os_acquire_object(acpi_gbl_ps_node_ext_cache);
|
op = acpi_os_acquire_object(acpi_gbl_ps_node_ext_cache);
|
||||||
memset(op, 0, sizeof(struct acpi_parse_obj_named));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Initialize the Op */
|
/* Initialize the Op */
|
||||||
|
|
|
@ -780,11 +780,6 @@ static int acpi_pci_link_resume(struct acpi_pci_link *link)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* FIXME: this is a workaround to avoid nasty warning. It will be removed
|
|
||||||
* after every device calls pci_disable_device in .resume.
|
|
||||||
*/
|
|
||||||
int acpi_in_resume;
|
|
||||||
static int irqrouter_resume(struct sys_device *dev)
|
static int irqrouter_resume(struct sys_device *dev)
|
||||||
{
|
{
|
||||||
struct list_head *node = NULL;
|
struct list_head *node = NULL;
|
||||||
|
@ -794,7 +789,6 @@ static int irqrouter_resume(struct sys_device *dev)
|
||||||
/* Make sure SCI is enabled again (Apple firmware bug?) */
|
/* Make sure SCI is enabled again (Apple firmware bug?) */
|
||||||
acpi_set_register(ACPI_BITREG_SCI_ENABLE, 1, ACPI_MTX_DO_NOT_LOCK);
|
acpi_set_register(ACPI_BITREG_SCI_ENABLE, 1, ACPI_MTX_DO_NOT_LOCK);
|
||||||
|
|
||||||
acpi_in_resume = 1;
|
|
||||||
list_for_each(node, &acpi_link.entries) {
|
list_for_each(node, &acpi_link.entries) {
|
||||||
link = list_entry(node, struct acpi_pci_link, node);
|
link = list_entry(node, struct acpi_pci_link, node);
|
||||||
if (!link) {
|
if (!link) {
|
||||||
|
@ -803,7 +797,6 @@ static int irqrouter_resume(struct sys_device *dev)
|
||||||
}
|
}
|
||||||
acpi_pci_link_resume(link);
|
acpi_pci_link_resume(link);
|
||||||
}
|
}
|
||||||
acpi_in_resume = 0;
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -285,6 +285,7 @@ acpi_ut_initialize_buffer(struct acpi_buffer * buffer,
|
||||||
return (status);
|
return (status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef NOT_USED_BY_LINUX
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
*
|
*
|
||||||
* FUNCTION: acpi_ut_allocate
|
* FUNCTION: acpi_ut_allocate
|
||||||
|
@ -360,3 +361,4 @@ void *acpi_ut_allocate_zeroed(acpi_size size,
|
||||||
|
|
||||||
return (allocation);
|
return (allocation);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
|
@ -724,9 +724,15 @@
|
||||||
|
|
||||||
/* Memory allocation */
|
/* Memory allocation */
|
||||||
|
|
||||||
|
#ifndef ACPI_ALLOCATE
|
||||||
#define ACPI_ALLOCATE(a) acpi_ut_allocate((acpi_size)(a),_COMPONENT,_acpi_module_name,__LINE__)
|
#define ACPI_ALLOCATE(a) acpi_ut_allocate((acpi_size)(a),_COMPONENT,_acpi_module_name,__LINE__)
|
||||||
|
#endif
|
||||||
|
#ifndef ACPI_ALLOCATE_ZEROED
|
||||||
#define ACPI_ALLOCATE_ZEROED(a) acpi_ut_allocate_zeroed((acpi_size)(a), _COMPONENT,_acpi_module_name,__LINE__)
|
#define ACPI_ALLOCATE_ZEROED(a) acpi_ut_allocate_zeroed((acpi_size)(a), _COMPONENT,_acpi_module_name,__LINE__)
|
||||||
#define ACPI_FREE(a) kfree(a)
|
#endif
|
||||||
|
#ifndef ACPI_FREE
|
||||||
|
#define ACPI_FREE(a) acpio_os_free(a)
|
||||||
|
#endif
|
||||||
#define ACPI_MEM_TRACKING(a)
|
#define ACPI_MEM_TRACKING(a)
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -105,4 +105,26 @@
|
||||||
|
|
||||||
static inline acpi_thread_id acpi_os_get_thread_id(void) { return current; }
|
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__ */
|
#endif /* __ACLINUX_H__ */
|
||||||
|
|
Loading…
Reference in a new issue