diff options
| -rw-r--r-- | drivers/acpi/osl.c | 30 | ||||
| -rw-r--r-- | drivers/acpi/parser/psutils.c | 2 | ||||
| -rw-r--r-- | drivers/acpi/pci_link.c | 7 | ||||
| -rw-r--r-- | drivers/acpi/utilities/utalloc.c | 2 | ||||
| -rw-r--r-- | include/acpi/acmacros.h | 8 | ||||
| -rw-r--r-- | include/acpi/platform/aclinux.h | 22 |
6 files changed, 31 insertions, 40 deletions
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c index eedb05c6dc7b..47dfde95b8f8 100644 --- a/drivers/acpi/osl.c +++ b/drivers/acpi/osl.c | |||
| @@ -136,16 +136,6 @@ void acpi_os_vprintf(const char *fmt, va_list args) | |||
| 136 | #endif | 136 | #endif |
| 137 | } | 137 | } |
| 138 | 138 | ||
| 139 | |||
| 140 | extern int acpi_in_resume; | ||
| 141 | void *acpi_os_allocate(acpi_size size) | ||
| 142 | { | ||
| 143 | if (acpi_in_resume) | ||
| 144 | return kmalloc(size, GFP_ATOMIC); | ||
| 145 | else | ||
| 146 | return kmalloc(size, GFP_KERNEL); | ||
| 147 | } | ||
| 148 | |||
| 149 | acpi_status acpi_os_get_root_pointer(u32 flags, struct acpi_pointer *addr) | 139 | acpi_status acpi_os_get_root_pointer(u32 flags, struct acpi_pointer *addr) |
| 150 | { | 140 | { |
| 151 | if (efi_enabled) { | 141 | if (efi_enabled) { |
| @@ -1115,26 +1105,6 @@ acpi_status acpi_os_release_object(acpi_cache_t * cache, void *object) | |||
| 1115 | return (AE_OK); | 1105 | return (AE_OK); |
| 1116 | } | 1106 | } |
| 1117 | 1107 | ||
| 1118 | /******************************************************************************* | ||
| 1119 | * | ||
| 1120 | * FUNCTION: acpi_os_acquire_object | ||
| 1121 | * | ||
| 1122 | * PARAMETERS: Cache - Handle to cache object | ||
| 1123 | * ReturnObject - Where the object is returned | ||
| 1124 | * | ||
| 1125 | * RETURN: Status | ||
| 1126 | * | ||
| 1127 | * DESCRIPTION: Return a zero-filled object. | ||
| 1128 | * | ||
| 1129 | ******************************************************************************/ | ||
| 1130 | |||
| 1131 | void *acpi_os_acquire_object(acpi_cache_t * cache) | ||
| 1132 | { | ||
| 1133 | void *object = kmem_cache_zalloc(cache, GFP_KERNEL); | ||
| 1134 | WARN_ON(!object); | ||
| 1135 | return object; | ||
| 1136 | } | ||
| 1137 | |||
| 1138 | /****************************************************************************** | 1108 | /****************************************************************************** |
| 1139 | * | 1109 | * |
| 1140 | * FUNCTION: acpi_os_validate_interface | 1110 | * FUNCTION: acpi_os_validate_interface |
diff --git a/drivers/acpi/parser/psutils.c b/drivers/acpi/parser/psutils.c index 182474ae8ce9..d405387b7414 100644 --- a/drivers/acpi/parser/psutils.c +++ b/drivers/acpi/parser/psutils.c | |||
| @@ -139,12 +139,10 @@ union acpi_parse_object *acpi_ps_alloc_op(u16 opcode) | |||
| 139 | /* The generic op (default) is by far the most common (16 to 1) */ | 139 | /* The generic op (default) is by far the most common (16 to 1) */ |
| 140 | 140 | ||
| 141 | op = acpi_os_acquire_object(acpi_gbl_ps_node_cache); | 141 | op = acpi_os_acquire_object(acpi_gbl_ps_node_cache); |
| 142 | memset(op, 0, sizeof(struct acpi_parse_obj_common)); | ||
| 143 | } else { | 142 | } else { |
| 144 | /* Extended parseop */ | 143 | /* Extended parseop */ |
| 145 | 144 | ||
| 146 | op = acpi_os_acquire_object(acpi_gbl_ps_node_ext_cache); | 145 | op = acpi_os_acquire_object(acpi_gbl_ps_node_ext_cache); |
| 147 | memset(op, 0, sizeof(struct acpi_parse_obj_named)); | ||
| 148 | } | 146 | } |
| 149 | 147 | ||
| 150 | /* Initialize the Op */ | 148 | /* Initialize the Op */ |
diff --git a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c index 8197c0e40769..7f3e7e77e794 100644 --- a/drivers/acpi/pci_link.c +++ b/drivers/acpi/pci_link.c | |||
| @@ -780,11 +780,6 @@ static int acpi_pci_link_resume(struct acpi_pci_link *link) | |||
| 780 | return 0; | 780 | return 0; |
| 781 | } | 781 | } |
| 782 | 782 | ||
| 783 | /* | ||
| 784 | * FIXME: this is a workaround to avoid nasty warning. It will be removed | ||
| 785 | * after every device calls pci_disable_device in .resume. | ||
| 786 | */ | ||
| 787 | int acpi_in_resume; | ||
| 788 | static int irqrouter_resume(struct sys_device *dev) | 783 | static int irqrouter_resume(struct sys_device *dev) |
| 789 | { | 784 | { |
| 790 | struct list_head *node = NULL; | 785 | struct list_head *node = NULL; |
| @@ -794,7 +789,6 @@ static int irqrouter_resume(struct sys_device *dev) | |||
| 794 | /* Make sure SCI is enabled again (Apple firmware bug?) */ | 789 | /* Make sure SCI is enabled again (Apple firmware bug?) */ |
| 795 | acpi_set_register(ACPI_BITREG_SCI_ENABLE, 1, ACPI_MTX_DO_NOT_LOCK); | 790 | acpi_set_register(ACPI_BITREG_SCI_ENABLE, 1, ACPI_MTX_DO_NOT_LOCK); |
| 796 | 791 | ||
| 797 | acpi_in_resume = 1; | ||
| 798 | list_for_each(node, &acpi_link.entries) { | 792 | list_for_each(node, &acpi_link.entries) { |
| 799 | link = list_entry(node, struct acpi_pci_link, node); | 793 | link = list_entry(node, struct acpi_pci_link, node); |
| 800 | if (!link) { | 794 | if (!link) { |
| @@ -803,7 +797,6 @@ static int irqrouter_resume(struct sys_device *dev) | |||
| 803 | } | 797 | } |
| 804 | acpi_pci_link_resume(link); | 798 | acpi_pci_link_resume(link); |
| 805 | } | 799 | } |
| 806 | acpi_in_resume = 0; | ||
| 807 | return 0; | 800 | return 0; |
| 808 | } | 801 | } |
| 809 | 802 | ||
diff --git a/drivers/acpi/utilities/utalloc.c b/drivers/acpi/utilities/utalloc.c index 5cff17dc78b3..f6cbc0b1bfd0 100644 --- a/drivers/acpi/utilities/utalloc.c +++ b/drivers/acpi/utilities/utalloc.c | |||
| @@ -285,6 +285,7 @@ acpi_ut_initialize_buffer(struct acpi_buffer * buffer, | |||
| 285 | return (status); | 285 | return (status); |
| 286 | } | 286 | } |
| 287 | 287 | ||
| 288 | #ifdef NOT_USED_BY_LINUX | ||
| 288 | /******************************************************************************* | 289 | /******************************************************************************* |
| 289 | * | 290 | * |
| 290 | * FUNCTION: acpi_ut_allocate | 291 | * FUNCTION: acpi_ut_allocate |
| @@ -360,3 +361,4 @@ void *acpi_ut_allocate_zeroed(acpi_size size, | |||
| 360 | 361 | ||
| 361 | return (allocation); | 362 | return (allocation); |
| 362 | } | 363 | } |
| 364 | #endif | ||
diff --git a/include/acpi/acmacros.h b/include/acpi/acmacros.h index f1ac6109556e..192fa095a515 100644 --- a/include/acpi/acmacros.h +++ b/include/acpi/acmacros.h | |||
| @@ -724,9 +724,15 @@ | |||
| 724 | 724 | ||
| 725 | /* Memory allocation */ | 725 | /* Memory allocation */ |
| 726 | 726 | ||
| 727 | #ifndef ACPI_ALLOCATE | ||
| 727 | #define ACPI_ALLOCATE(a) acpi_ut_allocate((acpi_size)(a),_COMPONENT,_acpi_module_name,__LINE__) | 728 | #define ACPI_ALLOCATE(a) acpi_ut_allocate((acpi_size)(a),_COMPONENT,_acpi_module_name,__LINE__) |
| 729 | #endif | ||
| 730 | #ifndef ACPI_ALLOCATE_ZEROED | ||
| 728 | #define ACPI_ALLOCATE_ZEROED(a) acpi_ut_allocate_zeroed((acpi_size)(a), _COMPONENT,_acpi_module_name,__LINE__) | 731 | #define ACPI_ALLOCATE_ZEROED(a) acpi_ut_allocate_zeroed((acpi_size)(a), _COMPONENT,_acpi_module_name,__LINE__) |
| 729 | #define ACPI_FREE(a) kfree(a) | 732 | #endif |
| 733 | #ifndef ACPI_FREE | ||
| 734 | #define ACPI_FREE(a) acpio_os_free(a) | ||
| 735 | #endif | ||
| 730 | #define ACPI_MEM_TRACKING(a) | 736 | #define ACPI_MEM_TRACKING(a) |
| 731 | 737 | ||
| 732 | #else | 738 | #else |
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__ */ |
