diff options
Diffstat (limited to 'drivers/acpi/acpica/exconfig.c')
-rw-r--r-- | drivers/acpi/acpica/exconfig.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/drivers/acpi/acpica/exconfig.c b/drivers/acpi/acpica/exconfig.c index 16219bde48da..f214dbfc4047 100644 --- a/drivers/acpi/acpica/exconfig.c +++ b/drivers/acpi/acpica/exconfig.c | |||
@@ -48,6 +48,7 @@ | |||
48 | #include "actables.h" | 48 | #include "actables.h" |
49 | #include "acdispat.h" | 49 | #include "acdispat.h" |
50 | #include "acevents.h" | 50 | #include "acevents.h" |
51 | #include "amlcode.h" | ||
51 | 52 | ||
52 | #define _COMPONENT ACPI_EXECUTER | 53 | #define _COMPONENT ACPI_EXECUTER |
53 | ACPI_MODULE_NAME("exconfig") | 54 | ACPI_MODULE_NAME("exconfig") |
@@ -120,8 +121,11 @@ acpi_ex_add_table(u32 table_index, | |||
120 | acpi_ns_exec_module_code_list(); | 121 | acpi_ns_exec_module_code_list(); |
121 | acpi_ex_enter_interpreter(); | 122 | acpi_ex_enter_interpreter(); |
122 | 123 | ||
123 | /* Update GPEs for any new _Lxx/_Exx methods. Ignore errors */ | 124 | /* |
124 | 125 | * Update GPEs for any new _Lxx/_Exx methods. Ignore errors. The host is | |
126 | * responsible for discovering any new wake GPEs by running _PRW methods | ||
127 | * that may have been loaded by this table. | ||
128 | */ | ||
125 | status = acpi_tb_get_owner_id(table_index, &owner_id); | 129 | status = acpi_tb_get_owner_id(table_index, &owner_id); |
126 | if (ACPI_SUCCESS(status)) { | 130 | if (ACPI_SUCCESS(status)) { |
127 | acpi_ev_update_gpes(owner_id); | 131 | acpi_ev_update_gpes(owner_id); |
@@ -158,12 +162,12 @@ acpi_ex_load_table_op(struct acpi_walk_state *walk_state, | |||
158 | 162 | ||
159 | ACPI_FUNCTION_TRACE(ex_load_table_op); | 163 | ACPI_FUNCTION_TRACE(ex_load_table_op); |
160 | 164 | ||
161 | /* Validate lengths for the signature_string, OEMIDString, OEMtable_iD */ | 165 | /* Validate lengths for the Signature, oem_id, and oem_table_id strings */ |
162 | 166 | ||
163 | if ((operand[0]->string.length > ACPI_NAME_SIZE) || | 167 | if ((operand[0]->string.length > ACPI_NAME_SIZE) || |
164 | (operand[1]->string.length > ACPI_OEM_ID_SIZE) || | 168 | (operand[1]->string.length > ACPI_OEM_ID_SIZE) || |
165 | (operand[2]->string.length > ACPI_OEM_TABLE_ID_SIZE)) { | 169 | (operand[2]->string.length > ACPI_OEM_TABLE_ID_SIZE)) { |
166 | return_ACPI_STATUS(AE_BAD_PARAMETER); | 170 | return_ACPI_STATUS(AE_AML_STRING_LIMIT); |
167 | } | 171 | } |
168 | 172 | ||
169 | /* Find the ACPI table in the RSDT/XSDT */ | 173 | /* Find the ACPI table in the RSDT/XSDT */ |
@@ -210,8 +214,8 @@ acpi_ex_load_table_op(struct acpi_walk_state *walk_state, | |||
210 | /* parameter_path (optional parameter) */ | 214 | /* parameter_path (optional parameter) */ |
211 | 215 | ||
212 | if (operand[4]->string.length > 0) { | 216 | if (operand[4]->string.length > 0) { |
213 | if ((operand[4]->string.pointer[0] != '\\') && | 217 | if ((operand[4]->string.pointer[0] != AML_ROOT_PREFIX) && |
214 | (operand[4]->string.pointer[0] != '^')) { | 218 | (operand[4]->string.pointer[0] != AML_PARENT_PREFIX)) { |
215 | /* | 219 | /* |
216 | * Path is not absolute, so it will be relative to the node | 220 | * Path is not absolute, so it will be relative to the node |
217 | * referenced by the root_path_string (or the NS root if omitted) | 221 | * referenced by the root_path_string (or the NS root if omitted) |
@@ -301,7 +305,7 @@ acpi_ex_region_read(union acpi_operand_object *obj_desc, u32 length, u8 *buffer) | |||
301 | acpi_ev_address_space_dispatch(obj_desc, NULL, ACPI_READ, | 305 | acpi_ev_address_space_dispatch(obj_desc, NULL, ACPI_READ, |
302 | region_offset, 8, &value); | 306 | region_offset, 8, &value); |
303 | if (ACPI_FAILURE(status)) { | 307 | if (ACPI_FAILURE(status)) { |
304 | return status; | 308 | return (status); |
305 | } | 309 | } |
306 | 310 | ||
307 | *buffer = (u8)value; | 311 | *buffer = (u8)value; |
@@ -309,7 +313,7 @@ acpi_ex_region_read(union acpi_operand_object *obj_desc, u32 length, u8 *buffer) | |||
309 | region_offset++; | 313 | region_offset++; |
310 | } | 314 | } |
311 | 315 | ||
312 | return AE_OK; | 316 | return (AE_OK); |
313 | } | 317 | } |
314 | 318 | ||
315 | /******************************************************************************* | 319 | /******************************************************************************* |