diff options
author | Bob Moore <robert.moore@intel.com> | 2006-04-21 17:15:00 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2006-06-14 02:30:55 -0400 |
commit | b229cf92eee616c7cb5ad8cdb35a19b119f00bc8 (patch) | |
tree | 74b52bec6ec029859c2320aba227290a503af31a /drivers/acpi/dispatcher | |
parent | 793c2388cae3fd023b3b5166354931752d42353c (diff) |
ACPI: ACPICA 20060421
Removed a device initialization optimization introduced in
20051216 where the _STA method was not run unless an _INI
was also present for the same device. This optimization
could cause problems because it could allow _INI methods
to be run within a not-present device subtree (If a
not-present device had no _INI, _STA would not be run,
the not-present status would not be discovered, and the
children of the device would be incorrectly traversed.)
Implemented a new _STA optimization where namespace
subtrees that do not contain _INI are identified and
ignored during device initialization. Selectively running
_STA can significantly improve boot time on large machines
(with assistance from Len Brown.)
Implemented support for the device initialization case
where the returned _STA flags indicate a device not-present
but functioning. In this case, _INI is not run, but the
device children are examined for presence, as per the
ACPI specification.
Implemented an additional change to the IndexField support
in order to conform to MS behavior. The value written to
the Index Register is not simply a byte offset, it is a
byte offset in units of the access width of the parent
Index Field. (Fiodor Suietov)
Defined and deployed a new OSL interface,
acpi_os_validate_address(). This interface is called during
the creation of all AML operation regions, and allows
the host OS to exert control over what addresses it will
allow the AML code to access. Operation Regions whose
addresses are disallowed will cause a runtime exception
when they are actually accessed (will not affect or abort
table loading.)
Defined and deployed a new OSL interface,
acpi_os_validate_interface(). This interface allows the host OS
to match the various "optional" interface/behavior strings
for the _OSI predefined control method as appropriate
(with assistance from Bjorn Helgaas.)
Restructured and corrected various problems in the
exception handling code paths within DsCallControlMethod
and DsTerminateControlMethod in dsmethod (with assistance
from Takayoshi Kochi.)
Modified the Linux source converter to ignore quoted string
literals while converting identifiers from mixed to lower
case. This will correct problems with the disassembler
and other areas where such strings must not be modified.
The ACPI_FUNCTION_* macros no longer require quotes around
the function name. This allows the Linux source converter
to convert the names, now that the converter ignores
quoted strings.
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/dispatcher')
-rw-r--r-- | drivers/acpi/dispatcher/dsfield.c | 12 | ||||
-rw-r--r-- | drivers/acpi/dispatcher/dsinit.c | 6 | ||||
-rw-r--r-- | drivers/acpi/dispatcher/dsmethod.c | 180 | ||||
-rw-r--r-- | drivers/acpi/dispatcher/dsmthdat.c | 22 | ||||
-rw-r--r-- | drivers/acpi/dispatcher/dsobject.c | 10 | ||||
-rw-r--r-- | drivers/acpi/dispatcher/dsopcode.c | 59 | ||||
-rw-r--r-- | drivers/acpi/dispatcher/dsutils.c | 16 | ||||
-rw-r--r-- | drivers/acpi/dispatcher/dswexec.c | 20 | ||||
-rw-r--r-- | drivers/acpi/dispatcher/dswload.c | 16 | ||||
-rw-r--r-- | drivers/acpi/dispatcher/dswscope.c | 6 | ||||
-rw-r--r-- | drivers/acpi/dispatcher/dswstate.c | 42 |
11 files changed, 217 insertions, 172 deletions
diff --git a/drivers/acpi/dispatcher/dsfield.c b/drivers/acpi/dispatcher/dsfield.c index 3d33bcc98678..a6d77efb41a0 100644 --- a/drivers/acpi/dispatcher/dsfield.c +++ b/drivers/acpi/dispatcher/dsfield.c | |||
@@ -87,7 +87,7 @@ acpi_ds_create_buffer_field(union acpi_parse_object *op, | |||
87 | union acpi_operand_object *second_desc = NULL; | 87 | union acpi_operand_object *second_desc = NULL; |
88 | u32 flags; | 88 | u32 flags; |
89 | 89 | ||
90 | ACPI_FUNCTION_TRACE("ds_create_buffer_field"); | 90 | ACPI_FUNCTION_TRACE(ds_create_buffer_field); |
91 | 91 | ||
92 | /* Get the name_string argument */ | 92 | /* Get the name_string argument */ |
93 | 93 | ||
@@ -210,7 +210,7 @@ acpi_ds_get_field_names(struct acpi_create_field_info *info, | |||
210 | acpi_status status; | 210 | acpi_status status; |
211 | acpi_integer position; | 211 | acpi_integer position; |
212 | 212 | ||
213 | ACPI_FUNCTION_TRACE_PTR("ds_get_field_names", info); | 213 | ACPI_FUNCTION_TRACE_PTR(ds_get_field_names, info); |
214 | 214 | ||
215 | /* First field starts at bit zero */ | 215 | /* First field starts at bit zero */ |
216 | 216 | ||
@@ -342,7 +342,7 @@ acpi_ds_create_field(union acpi_parse_object *op, | |||
342 | union acpi_parse_object *arg; | 342 | union acpi_parse_object *arg; |
343 | struct acpi_create_field_info info; | 343 | struct acpi_create_field_info info; |
344 | 344 | ||
345 | ACPI_FUNCTION_TRACE_PTR("ds_create_field", op); | 345 | ACPI_FUNCTION_TRACE_PTR(ds_create_field, op); |
346 | 346 | ||
347 | /* First arg is the name of the parent op_region (must already exist) */ | 347 | /* First arg is the name of the parent op_region (must already exist) */ |
348 | 348 | ||
@@ -399,7 +399,7 @@ acpi_ds_init_field_objects(union acpi_parse_object *op, | |||
399 | struct acpi_namespace_node *node; | 399 | struct acpi_namespace_node *node; |
400 | u8 type = 0; | 400 | u8 type = 0; |
401 | 401 | ||
402 | ACPI_FUNCTION_TRACE_PTR("ds_init_field_objects", op); | 402 | ACPI_FUNCTION_TRACE_PTR(ds_init_field_objects, op); |
403 | 403 | ||
404 | switch (walk_state->opcode) { | 404 | switch (walk_state->opcode) { |
405 | case AML_FIELD_OP: | 405 | case AML_FIELD_OP: |
@@ -482,7 +482,7 @@ acpi_ds_create_bank_field(union acpi_parse_object *op, | |||
482 | union acpi_parse_object *arg; | 482 | union acpi_parse_object *arg; |
483 | struct acpi_create_field_info info; | 483 | struct acpi_create_field_info info; |
484 | 484 | ||
485 | ACPI_FUNCTION_TRACE_PTR("ds_create_bank_field", op); | 485 | ACPI_FUNCTION_TRACE_PTR(ds_create_bank_field, op); |
486 | 486 | ||
487 | /* First arg is the name of the parent op_region (must already exist) */ | 487 | /* First arg is the name of the parent op_region (must already exist) */ |
488 | 488 | ||
@@ -555,7 +555,7 @@ acpi_ds_create_index_field(union acpi_parse_object *op, | |||
555 | union acpi_parse_object *arg; | 555 | union acpi_parse_object *arg; |
556 | struct acpi_create_field_info info; | 556 | struct acpi_create_field_info info; |
557 | 557 | ||
558 | ACPI_FUNCTION_TRACE_PTR("ds_create_index_field", op); | 558 | ACPI_FUNCTION_TRACE_PTR(ds_create_index_field, op); |
559 | 559 | ||
560 | /* First arg is the name of the Index register (must already exist) */ | 560 | /* First arg is the name of the Index register (must already exist) */ |
561 | 561 | ||
diff --git a/drivers/acpi/dispatcher/dsinit.c b/drivers/acpi/dispatcher/dsinit.c index e65a07ad2422..bbdf990e9f65 100644 --- a/drivers/acpi/dispatcher/dsinit.c +++ b/drivers/acpi/dispatcher/dsinit.c | |||
@@ -184,7 +184,7 @@ acpi_ds_init_one_object(acpi_handle obj_handle, | |||
184 | * | 184 | * |
185 | * RETURN: Status | 185 | * RETURN: Status |
186 | * | 186 | * |
187 | * DESCRIPTION: Walk the namespace starting at "start_node" and perform any | 187 | * DESCRIPTION: Walk the namespace starting at "StartNode" and perform any |
188 | * necessary initialization on the objects found therein | 188 | * necessary initialization on the objects found therein |
189 | * | 189 | * |
190 | ******************************************************************************/ | 190 | ******************************************************************************/ |
@@ -196,7 +196,7 @@ acpi_ds_initialize_objects(struct acpi_table_desc * table_desc, | |||
196 | acpi_status status; | 196 | acpi_status status; |
197 | struct acpi_init_walk_info info; | 197 | struct acpi_init_walk_info info; |
198 | 198 | ||
199 | ACPI_FUNCTION_TRACE("ds_initialize_objects"); | 199 | ACPI_FUNCTION_TRACE(ds_initialize_objects); |
200 | 200 | ||
201 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, | 201 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, |
202 | "**** Starting initialization of namespace objects ****\n")); | 202 | "**** Starting initialization of namespace objects ****\n")); |
@@ -213,7 +213,7 @@ acpi_ds_initialize_objects(struct acpi_table_desc * table_desc, | |||
213 | status = acpi_walk_namespace(ACPI_TYPE_ANY, start_node, ACPI_UINT32_MAX, | 213 | status = acpi_walk_namespace(ACPI_TYPE_ANY, start_node, ACPI_UINT32_MAX, |
214 | acpi_ds_init_one_object, &info, NULL); | 214 | acpi_ds_init_one_object, &info, NULL); |
215 | if (ACPI_FAILURE(status)) { | 215 | if (ACPI_FAILURE(status)) { |
216 | ACPI_EXCEPTION((AE_INFO, status, "During walk_namespace")); | 216 | ACPI_EXCEPTION((AE_INFO, status, "During WalkNamespace")); |
217 | } | 217 | } |
218 | 218 | ||
219 | ACPI_DEBUG_PRINT_RAW((ACPI_DB_INIT, | 219 | ACPI_DEBUG_PRINT_RAW((ACPI_DB_INIT, |
diff --git a/drivers/acpi/dispatcher/dsmethod.c b/drivers/acpi/dispatcher/dsmethod.c index 7dc59fc7344f..651f2b68531b 100644 --- a/drivers/acpi/dispatcher/dsmethod.c +++ b/drivers/acpi/dispatcher/dsmethod.c | |||
@@ -134,7 +134,7 @@ acpi_ds_begin_method_execution(struct acpi_namespace_node * method_node, | |||
134 | { | 134 | { |
135 | acpi_status status = AE_OK; | 135 | acpi_status status = AE_OK; |
136 | 136 | ||
137 | ACPI_FUNCTION_TRACE_PTR("ds_begin_method_execution", method_node); | 137 | ACPI_FUNCTION_TRACE_PTR(ds_begin_method_execution, method_node); |
138 | 138 | ||
139 | if (!method_node) { | 139 | if (!method_node) { |
140 | return_ACPI_STATUS(AE_NULL_ENTRY); | 140 | return_ACPI_STATUS(AE_NULL_ENTRY); |
@@ -170,11 +170,14 @@ acpi_ds_begin_method_execution(struct acpi_namespace_node * method_node, | |||
170 | 170 | ||
171 | /* | 171 | /* |
172 | * Get a unit from the method semaphore. This releases the | 172 | * Get a unit from the method semaphore. This releases the |
173 | * interpreter if we block | 173 | * interpreter if we block (then reacquires it) |
174 | */ | 174 | */ |
175 | status = | 175 | status = |
176 | acpi_ex_system_wait_semaphore(obj_desc->method.semaphore, | 176 | acpi_ex_system_wait_semaphore(obj_desc->method.semaphore, |
177 | ACPI_WAIT_FOREVER); | 177 | ACPI_WAIT_FOREVER); |
178 | if (ACPI_FAILURE(status)) { | ||
179 | return_ACPI_STATUS(status); | ||
180 | } | ||
178 | } | 181 | } |
179 | 182 | ||
180 | /* | 183 | /* |
@@ -185,7 +188,7 @@ acpi_ds_begin_method_execution(struct acpi_namespace_node * method_node, | |||
185 | if (!obj_desc->method.owner_id) { | 188 | if (!obj_desc->method.owner_id) { |
186 | status = acpi_ut_allocate_owner_id(&obj_desc->method.owner_id); | 189 | status = acpi_ut_allocate_owner_id(&obj_desc->method.owner_id); |
187 | if (ACPI_FAILURE(status)) { | 190 | if (ACPI_FAILURE(status)) { |
188 | return_ACPI_STATUS(status); | 191 | goto cleanup; |
189 | } | 192 | } |
190 | } | 193 | } |
191 | 194 | ||
@@ -195,6 +198,14 @@ acpi_ds_begin_method_execution(struct acpi_namespace_node * method_node, | |||
195 | */ | 198 | */ |
196 | obj_desc->method.thread_count++; | 199 | obj_desc->method.thread_count++; |
197 | return_ACPI_STATUS(status); | 200 | return_ACPI_STATUS(status); |
201 | |||
202 | cleanup: | ||
203 | /* On error, must signal the method semaphore if present */ | ||
204 | |||
205 | if (obj_desc->method.semaphore) { | ||
206 | (void)acpi_os_signal_semaphore(obj_desc->method.semaphore, 1); | ||
207 | } | ||
208 | return_ACPI_STATUS(status); | ||
198 | } | 209 | } |
199 | 210 | ||
200 | /******************************************************************************* | 211 | /******************************************************************************* |
@@ -223,7 +234,7 @@ acpi_ds_call_control_method(struct acpi_thread_state *thread, | |||
223 | struct acpi_parameter_info info; | 234 | struct acpi_parameter_info info; |
224 | u32 i; | 235 | u32 i; |
225 | 236 | ||
226 | ACPI_FUNCTION_TRACE_PTR("ds_call_control_method", this_walk_state); | 237 | ACPI_FUNCTION_TRACE_PTR(ds_call_control_method, this_walk_state); |
227 | 238 | ||
228 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, | 239 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, |
229 | "Execute method %p, currentstate=%p\n", | 240 | "Execute method %p, currentstate=%p\n", |
@@ -242,26 +253,31 @@ acpi_ds_call_control_method(struct acpi_thread_state *thread, | |||
242 | return_ACPI_STATUS(AE_NULL_OBJECT); | 253 | return_ACPI_STATUS(AE_NULL_OBJECT); |
243 | } | 254 | } |
244 | 255 | ||
245 | /* Init for new method, wait on concurrency semaphore */ | 256 | /* Init for new method, possibly wait on concurrency semaphore */ |
246 | 257 | ||
247 | status = acpi_ds_begin_method_execution(method_node, obj_desc, | 258 | status = acpi_ds_begin_method_execution(method_node, obj_desc, |
248 | this_walk_state->method_node); | 259 | this_walk_state->method_node); |
249 | if (ACPI_FAILURE(status)) { | 260 | if (ACPI_FAILURE(status)) { |
250 | goto cleanup; | 261 | return_ACPI_STATUS(status); |
251 | } | 262 | } |
252 | 263 | ||
264 | /* | ||
265 | * 1) Parse the method. All "normal" methods are parsed for each execution. | ||
266 | * Internal methods (_OSI, etc.) do not require parsing. | ||
267 | */ | ||
253 | if (!(obj_desc->method.method_flags & AML_METHOD_INTERNAL_ONLY)) { | 268 | if (!(obj_desc->method.method_flags & AML_METHOD_INTERNAL_ONLY)) { |
254 | 269 | ||
255 | /* 1) Parse: Create a new walk state for the preempting walk */ | 270 | /* Create a new walk state for the parse */ |
256 | 271 | ||
257 | next_walk_state = | 272 | next_walk_state = |
258 | acpi_ds_create_walk_state(obj_desc->method.owner_id, op, | 273 | acpi_ds_create_walk_state(obj_desc->method.owner_id, op, |
259 | obj_desc, NULL); | 274 | obj_desc, NULL); |
260 | if (!next_walk_state) { | 275 | if (!next_walk_state) { |
261 | return_ACPI_STATUS(AE_NO_MEMORY); | 276 | status = AE_NO_MEMORY; |
277 | goto cleanup; | ||
262 | } | 278 | } |
263 | 279 | ||
264 | /* Create and init a Root Node */ | 280 | /* Create and init a parse tree root */ |
265 | 281 | ||
266 | op = acpi_ps_create_scope_op(); | 282 | op = acpi_ps_create_scope_op(); |
267 | if (!op) { | 283 | if (!op) { |
@@ -274,17 +290,20 @@ acpi_ds_call_control_method(struct acpi_thread_state *thread, | |||
274 | obj_desc->method.aml_length, | 290 | obj_desc->method.aml_length, |
275 | NULL, 1); | 291 | NULL, 1); |
276 | if (ACPI_FAILURE(status)) { | 292 | if (ACPI_FAILURE(status)) { |
277 | acpi_ds_delete_walk_state(next_walk_state); | 293 | acpi_ps_delete_parse_tree(op); |
278 | goto cleanup; | 294 | goto cleanup; |
279 | } | 295 | } |
280 | 296 | ||
281 | /* Begin AML parse */ | 297 | /* Begin AML parse (deletes next_walk_state) */ |
282 | 298 | ||
283 | status = acpi_ps_parse_aml(next_walk_state); | 299 | status = acpi_ps_parse_aml(next_walk_state); |
284 | acpi_ps_delete_parse_tree(op); | 300 | acpi_ps_delete_parse_tree(op); |
301 | if (ACPI_FAILURE(status)) { | ||
302 | goto cleanup; | ||
303 | } | ||
285 | } | 304 | } |
286 | 305 | ||
287 | /* 2) Execute: Create a new state for the preempting walk */ | 306 | /* 2) Begin method execution. Create a new walk state */ |
288 | 307 | ||
289 | next_walk_state = acpi_ds_create_walk_state(obj_desc->method.owner_id, | 308 | next_walk_state = acpi_ds_create_walk_state(obj_desc->method.owner_id, |
290 | NULL, obj_desc, thread); | 309 | NULL, obj_desc, thread); |
@@ -292,6 +311,7 @@ acpi_ds_call_control_method(struct acpi_thread_state *thread, | |||
292 | status = AE_NO_MEMORY; | 311 | status = AE_NO_MEMORY; |
293 | goto cleanup; | 312 | goto cleanup; |
294 | } | 313 | } |
314 | |||
295 | /* | 315 | /* |
296 | * The resolved arguments were put on the previous walk state's operand | 316 | * The resolved arguments were put on the previous walk state's operand |
297 | * stack. Operands on the previous walk state stack always | 317 | * stack. Operands on the previous walk state stack always |
@@ -326,6 +346,8 @@ acpi_ds_call_control_method(struct acpi_thread_state *thread, | |||
326 | "Starting nested execution, newstate=%p\n", | 346 | "Starting nested execution, newstate=%p\n", |
327 | next_walk_state)); | 347 | next_walk_state)); |
328 | 348 | ||
349 | /* Invoke an internal method if necessary */ | ||
350 | |||
329 | if (obj_desc->method.method_flags & AML_METHOD_INTERNAL_ONLY) { | 351 | if (obj_desc->method.method_flags & AML_METHOD_INTERNAL_ONLY) { |
330 | status = obj_desc->method.implementation(next_walk_state); | 352 | status = obj_desc->method.implementation(next_walk_state); |
331 | } | 353 | } |
@@ -333,16 +355,14 @@ acpi_ds_call_control_method(struct acpi_thread_state *thread, | |||
333 | return_ACPI_STATUS(status); | 355 | return_ACPI_STATUS(status); |
334 | 356 | ||
335 | cleanup: | 357 | cleanup: |
336 | /* Decrement the thread count on the method parse tree */ | ||
337 | 358 | ||
338 | if (next_walk_state && (next_walk_state->method_desc)) { | 359 | /* On error, we must terminate the method properly */ |
339 | next_walk_state->method_desc->method.thread_count--; | ||
340 | } | ||
341 | 360 | ||
342 | /* On error, we must delete the new walk state */ | 361 | acpi_ds_terminate_control_method(obj_desc, next_walk_state); |
362 | if (next_walk_state) { | ||
363 | acpi_ds_delete_walk_state(next_walk_state); | ||
364 | } | ||
343 | 365 | ||
344 | acpi_ds_terminate_control_method(next_walk_state); | ||
345 | acpi_ds_delete_walk_state(next_walk_state); | ||
346 | return_ACPI_STATUS(status); | 366 | return_ACPI_STATUS(status); |
347 | } | 367 | } |
348 | 368 | ||
@@ -366,15 +386,15 @@ acpi_ds_restart_control_method(struct acpi_walk_state *walk_state, | |||
366 | { | 386 | { |
367 | acpi_status status; | 387 | acpi_status status; |
368 | 388 | ||
369 | ACPI_FUNCTION_TRACE_PTR("ds_restart_control_method", walk_state); | 389 | ACPI_FUNCTION_TRACE_PTR(ds_restart_control_method, walk_state); |
370 | 390 | ||
371 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, | 391 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, |
372 | "****Restart [%4.4s] Op %p return_value_from_callee %p\n", | 392 | "****Restart [%4.4s] Op %p ReturnValueFromCallee %p\n", |
373 | (char *)&walk_state->method_node->name, | 393 | (char *)&walk_state->method_node->name, |
374 | walk_state->method_call_op, return_desc)); | 394 | walk_state->method_call_op, return_desc)); |
375 | 395 | ||
376 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, | 396 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, |
377 | " return_from_this_method_used?=%X res_stack %p Walk %p\n", | 397 | " ReturnFromThisMethodUsed?=%X ResStack %p Walk %p\n", |
378 | walk_state->return_used, | 398 | walk_state->return_used, |
379 | walk_state->results, walk_state)); | 399 | walk_state->results, walk_state)); |
380 | 400 | ||
@@ -426,7 +446,8 @@ acpi_ds_restart_control_method(struct acpi_walk_state *walk_state, | |||
426 | * | 446 | * |
427 | * FUNCTION: acpi_ds_terminate_control_method | 447 | * FUNCTION: acpi_ds_terminate_control_method |
428 | * | 448 | * |
429 | * PARAMETERS: walk_state - State of the method | 449 | * PARAMETERS: method_desc - Method object |
450 | * walk_state - State associated with the method | ||
430 | * | 451 | * |
431 | * RETURN: None | 452 | * RETURN: None |
432 | * | 453 | * |
@@ -436,28 +457,27 @@ acpi_ds_restart_control_method(struct acpi_walk_state *walk_state, | |||
436 | * | 457 | * |
437 | ******************************************************************************/ | 458 | ******************************************************************************/ |
438 | 459 | ||
439 | void acpi_ds_terminate_control_method(struct acpi_walk_state *walk_state) | 460 | void |
461 | acpi_ds_terminate_control_method(union acpi_operand_object *method_desc, | ||
462 | struct acpi_walk_state *walk_state) | ||
440 | { | 463 | { |
441 | union acpi_operand_object *obj_desc; | ||
442 | struct acpi_namespace_node *method_node; | 464 | struct acpi_namespace_node *method_node; |
443 | acpi_status status; | 465 | acpi_status status; |
444 | 466 | ||
445 | ACPI_FUNCTION_TRACE_PTR("ds_terminate_control_method", walk_state); | 467 | ACPI_FUNCTION_TRACE_PTR(ds_terminate_control_method, walk_state); |
446 | |||
447 | if (!walk_state) { | ||
448 | return_VOID; | ||
449 | } | ||
450 | 468 | ||
451 | /* The current method object was saved in the walk state */ | 469 | /* method_desc is required, walk_state is optional */ |
452 | 470 | ||
453 | obj_desc = walk_state->method_desc; | 471 | if (!method_desc) { |
454 | if (!obj_desc) { | ||
455 | return_VOID; | 472 | return_VOID; |
456 | } | 473 | } |
457 | 474 | ||
458 | /* Delete all arguments and locals */ | 475 | if (walk_state) { |
459 | 476 | ||
460 | acpi_ds_method_data_delete_all(walk_state); | 477 | /* Delete all arguments and locals */ |
478 | |||
479 | acpi_ds_method_data_delete_all(walk_state); | ||
480 | } | ||
461 | 481 | ||
462 | /* | 482 | /* |
463 | * Lock the parser while we terminate this method. | 483 | * Lock the parser while we terminate this method. |
@@ -471,60 +491,66 @@ void acpi_ds_terminate_control_method(struct acpi_walk_state *walk_state) | |||
471 | 491 | ||
472 | /* Signal completion of the execution of this method if necessary */ | 492 | /* Signal completion of the execution of this method if necessary */ |
473 | 493 | ||
474 | if (walk_state->method_desc->method.semaphore) { | 494 | if (method_desc->method.semaphore) { |
475 | status = | 495 | status = |
476 | acpi_os_signal_semaphore(walk_state->method_desc->method. | 496 | acpi_os_signal_semaphore(method_desc->method.semaphore, 1); |
477 | semaphore, 1); | ||
478 | if (ACPI_FAILURE(status)) { | 497 | if (ACPI_FAILURE(status)) { |
479 | ACPI_ERROR((AE_INFO, | ||
480 | "Could not signal method semaphore")); | ||
481 | 498 | ||
482 | /* Ignore error and continue cleanup */ | 499 | /* Ignore error and continue */ |
500 | |||
501 | ACPI_EXCEPTION((AE_INFO, status, | ||
502 | "Could not signal method semaphore")); | ||
483 | } | 503 | } |
484 | } | 504 | } |
485 | 505 | ||
486 | /* | 506 | if (walk_state) { |
487 | * There are no more threads executing this method. Perform | 507 | /* |
488 | * additional cleanup. | 508 | * Delete any objects created by this method during execution. |
489 | * | 509 | * The method Node is stored in the walk state |
490 | * The method Node is stored in the walk state | 510 | */ |
491 | */ | 511 | method_node = walk_state->method_node; |
492 | method_node = walk_state->method_node; | ||
493 | 512 | ||
494 | /* Lock namespace for possible update */ | 513 | /* Lock namespace for possible update */ |
495 | 514 | ||
496 | status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE); | 515 | status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE); |
497 | if (ACPI_FAILURE(status)) { | 516 | if (ACPI_FAILURE(status)) { |
498 | goto exit; | 517 | goto exit; |
499 | } | 518 | } |
500 | 519 | ||
501 | /* | 520 | /* |
502 | * Delete any namespace entries created immediately underneath | 521 | * Delete any namespace entries created immediately underneath |
503 | * the method | 522 | * the method |
504 | */ | 523 | */ |
505 | if (method_node && method_node->child) { | 524 | if (method_node && method_node->child) { |
506 | acpi_ns_delete_namespace_subtree(method_node); | 525 | acpi_ns_delete_namespace_subtree(method_node); |
526 | } | ||
527 | |||
528 | /* | ||
529 | * Delete any namespace entries created anywhere else within | ||
530 | * the namespace by the execution of this method | ||
531 | */ | ||
532 | acpi_ns_delete_namespace_by_owner(method_desc->method.owner_id); | ||
533 | status = acpi_ut_release_mutex(ACPI_MTX_NAMESPACE); | ||
507 | } | 534 | } |
508 | 535 | ||
509 | /* | 536 | /* Decrement the thread count on the method */ |
510 | * Delete any namespace entries created anywhere else within | 537 | |
511 | * the namespace by the execution of this method | 538 | if (method_desc->method.thread_count) { |
512 | */ | 539 | method_desc->method.thread_count--; |
513 | acpi_ns_delete_namespace_by_owner(walk_state->method_desc->method. | 540 | } else { |
514 | owner_id); | 541 | ACPI_ERROR((AE_INFO, "Invalid zero thread count in method")); |
515 | status = acpi_ut_release_mutex(ACPI_MTX_NAMESPACE); | 542 | } |
516 | 543 | ||
517 | /* Are there any other threads currently executing this method? */ | 544 | /* Are there any other threads currently executing this method? */ |
518 | 545 | ||
519 | if (walk_state->method_desc->method.thread_count) { | 546 | if (method_desc->method.thread_count) { |
520 | /* | 547 | /* |
521 | * Additional threads. Do not release the owner_id in this case, | 548 | * Additional threads. Do not release the owner_id in this case, |
522 | * we immediately reuse it for the next thread executing this method | 549 | * we immediately reuse it for the next thread executing this method |
523 | */ | 550 | */ |
524 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, | 551 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, |
525 | "*** Completed execution of one thread, %d threads remaining\n", | 552 | "*** Completed execution of one thread, %d threads remaining\n", |
526 | walk_state->method_desc->method. | 553 | method_desc->method.thread_count)); |
527 | thread_count)); | ||
528 | } else { | 554 | } else { |
529 | /* This is the only executing thread for this method */ | 555 | /* This is the only executing thread for this method */ |
530 | 556 | ||
@@ -538,18 +564,16 @@ void acpi_ds_terminate_control_method(struct acpi_walk_state *walk_state) | |||
538 | * This code is here because we must wait until the last thread exits | 564 | * This code is here because we must wait until the last thread exits |
539 | * before creating the synchronization semaphore. | 565 | * before creating the synchronization semaphore. |
540 | */ | 566 | */ |
541 | if ((walk_state->method_desc->method.concurrency == 1) && | 567 | if ((method_desc->method.concurrency == 1) && |
542 | (!walk_state->method_desc->method.semaphore)) { | 568 | (!method_desc->method.semaphore)) { |
543 | status = acpi_os_create_semaphore(1, 1, | 569 | status = acpi_os_create_semaphore(1, 1, |
544 | &walk_state-> | 570 | &method_desc->method. |
545 | method_desc->method. | ||
546 | semaphore); | 571 | semaphore); |
547 | } | 572 | } |
548 | 573 | ||
549 | /* No more threads, we can free the owner_id */ | 574 | /* No more threads, we can free the owner_id */ |
550 | 575 | ||
551 | acpi_ut_release_owner_id(&walk_state->method_desc->method. | 576 | acpi_ut_release_owner_id(&method_desc->method.owner_id); |
552 | owner_id); | ||
553 | } | 577 | } |
554 | 578 | ||
555 | exit: | 579 | exit: |
@@ -586,7 +610,7 @@ acpi_status acpi_ds_parse_method(struct acpi_namespace_node *node) | |||
586 | union acpi_parse_object *op; | 610 | union acpi_parse_object *op; |
587 | struct acpi_walk_state *walk_state; | 611 | struct acpi_walk_state *walk_state; |
588 | 612 | ||
589 | ACPI_FUNCTION_TRACE_PTR("ds_parse_method", node); | 613 | ACPI_FUNCTION_TRACE_PTR(ds_parse_method, node); |
590 | 614 | ||
591 | /* Parameter Validation */ | 615 | /* Parameter Validation */ |
592 | 616 | ||
@@ -595,7 +619,7 @@ acpi_status acpi_ds_parse_method(struct acpi_namespace_node *node) | |||
595 | } | 619 | } |
596 | 620 | ||
597 | ACPI_DEBUG_PRINT((ACPI_DB_PARSE, | 621 | ACPI_DEBUG_PRINT((ACPI_DB_PARSE, |
598 | "**** Parsing [%4.4s] **** named_obj=%p\n", | 622 | "**** Parsing [%4.4s] **** NamedObj=%p\n", |
599 | acpi_ut_get_node_name(node), node)); | 623 | acpi_ut_get_node_name(node), node)); |
600 | 624 | ||
601 | /* Extract the method object from the method Node */ | 625 | /* Extract the method object from the method Node */ |
@@ -674,7 +698,7 @@ acpi_status acpi_ds_parse_method(struct acpi_namespace_node *node) | |||
674 | } | 698 | } |
675 | 699 | ||
676 | ACPI_DEBUG_PRINT((ACPI_DB_PARSE, | 700 | ACPI_DEBUG_PRINT((ACPI_DB_PARSE, |
677 | "**** [%4.4s] Parsed **** named_obj=%p Op=%p\n", | 701 | "**** [%4.4s] Parsed **** NamedObj=%p Op=%p\n", |
678 | acpi_ut_get_node_name(node), node, op)); | 702 | acpi_ut_get_node_name(node), node, op)); |
679 | 703 | ||
680 | /* | 704 | /* |
diff --git a/drivers/acpi/dispatcher/dsmthdat.c b/drivers/acpi/dispatcher/dsmthdat.c index ce4de18f1229..b47c54fad86d 100644 --- a/drivers/acpi/dispatcher/dsmthdat.c +++ b/drivers/acpi/dispatcher/dsmthdat.c | |||
@@ -92,7 +92,7 @@ void acpi_ds_method_data_init(struct acpi_walk_state *walk_state) | |||
92 | { | 92 | { |
93 | u32 i; | 93 | u32 i; |
94 | 94 | ||
95 | ACPI_FUNCTION_TRACE("ds_method_data_init"); | 95 | ACPI_FUNCTION_TRACE(ds_method_data_init); |
96 | 96 | ||
97 | /* Init the method arguments */ | 97 | /* Init the method arguments */ |
98 | 98 | ||
@@ -140,7 +140,7 @@ void acpi_ds_method_data_delete_all(struct acpi_walk_state *walk_state) | |||
140 | { | 140 | { |
141 | u32 index; | 141 | u32 index; |
142 | 142 | ||
143 | ACPI_FUNCTION_TRACE("ds_method_data_delete_all"); | 143 | ACPI_FUNCTION_TRACE(ds_method_data_delete_all); |
144 | 144 | ||
145 | /* Detach the locals */ | 145 | /* Detach the locals */ |
146 | 146 | ||
@@ -199,7 +199,7 @@ acpi_ds_method_data_init_args(union acpi_operand_object **params, | |||
199 | acpi_status status; | 199 | acpi_status status; |
200 | u32 index = 0; | 200 | u32 index = 0; |
201 | 201 | ||
202 | ACPI_FUNCTION_TRACE_PTR("ds_method_data_init_args", params); | 202 | ACPI_FUNCTION_TRACE_PTR(ds_method_data_init_args, params); |
203 | 203 | ||
204 | if (!params) { | 204 | if (!params) { |
205 | ACPI_DEBUG_PRINT((ACPI_DB_EXEC, | 205 | ACPI_DEBUG_PRINT((ACPI_DB_EXEC, |
@@ -251,7 +251,7 @@ acpi_ds_method_data_get_node(u16 opcode, | |||
251 | struct acpi_walk_state *walk_state, | 251 | struct acpi_walk_state *walk_state, |
252 | struct acpi_namespace_node **node) | 252 | struct acpi_namespace_node **node) |
253 | { | 253 | { |
254 | ACPI_FUNCTION_TRACE("ds_method_data_get_node"); | 254 | ACPI_FUNCTION_TRACE(ds_method_data_get_node); |
255 | 255 | ||
256 | /* | 256 | /* |
257 | * Method Locals and Arguments are supported | 257 | * Method Locals and Arguments are supported |
@@ -318,10 +318,10 @@ acpi_ds_method_data_set_value(u16 opcode, | |||
318 | acpi_status status; | 318 | acpi_status status; |
319 | struct acpi_namespace_node *node; | 319 | struct acpi_namespace_node *node; |
320 | 320 | ||
321 | ACPI_FUNCTION_TRACE("ds_method_data_set_value"); | 321 | ACPI_FUNCTION_TRACE(ds_method_data_set_value); |
322 | 322 | ||
323 | ACPI_DEBUG_PRINT((ACPI_DB_EXEC, | 323 | ACPI_DEBUG_PRINT((ACPI_DB_EXEC, |
324 | "new_obj %p Opcode %X, Refs=%d [%s]\n", object, | 324 | "NewObj %p Opcode %X, Refs=%d [%s]\n", object, |
325 | opcode, object->common.reference_count, | 325 | opcode, object->common.reference_count, |
326 | acpi_ut_get_type_name(object->common.type))); | 326 | acpi_ut_get_type_name(object->common.type))); |
327 | 327 | ||
@@ -372,7 +372,7 @@ acpi_ds_method_data_get_value(u16 opcode, | |||
372 | struct acpi_namespace_node *node; | 372 | struct acpi_namespace_node *node; |
373 | union acpi_operand_object *object; | 373 | union acpi_operand_object *object; |
374 | 374 | ||
375 | ACPI_FUNCTION_TRACE("ds_method_data_get_value"); | 375 | ACPI_FUNCTION_TRACE(ds_method_data_get_value); |
376 | 376 | ||
377 | /* Validate the object descriptor */ | 377 | /* Validate the object descriptor */ |
378 | 378 | ||
@@ -477,7 +477,7 @@ acpi_ds_method_data_delete_value(u16 opcode, | |||
477 | struct acpi_namespace_node *node; | 477 | struct acpi_namespace_node *node; |
478 | union acpi_operand_object *object; | 478 | union acpi_operand_object *object; |
479 | 479 | ||
480 | ACPI_FUNCTION_TRACE("ds_method_data_delete_value"); | 480 | ACPI_FUNCTION_TRACE(ds_method_data_delete_value); |
481 | 481 | ||
482 | /* Get the namespace node for the arg/local */ | 482 | /* Get the namespace node for the arg/local */ |
483 | 483 | ||
@@ -538,7 +538,7 @@ acpi_ds_store_object_to_local(u16 opcode, | |||
538 | union acpi_operand_object *current_obj_desc; | 538 | union acpi_operand_object *current_obj_desc; |
539 | union acpi_operand_object *new_obj_desc; | 539 | union acpi_operand_object *new_obj_desc; |
540 | 540 | ||
541 | ACPI_FUNCTION_TRACE("ds_store_object_to_local"); | 541 | ACPI_FUNCTION_TRACE(ds_store_object_to_local); |
542 | ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "Opcode=%X Index=%d Obj=%p\n", | 542 | ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "Opcode=%X Index=%d Obj=%p\n", |
543 | opcode, index, obj_desc)); | 543 | opcode, index, obj_desc)); |
544 | 544 | ||
@@ -614,7 +614,7 @@ acpi_ds_store_object_to_local(u16 opcode, | |||
614 | && (current_obj_desc->reference.opcode == | 614 | && (current_obj_desc->reference.opcode == |
615 | AML_REF_OF_OP)) { | 615 | AML_REF_OF_OP)) { |
616 | ACPI_DEBUG_PRINT((ACPI_DB_EXEC, | 616 | ACPI_DEBUG_PRINT((ACPI_DB_EXEC, |
617 | "Arg (%p) is an obj_ref(Node), storing in node %p\n", | 617 | "Arg (%p) is an ObjRef(Node), storing in node %p\n", |
618 | new_obj_desc, | 618 | new_obj_desc, |
619 | current_obj_desc)); | 619 | current_obj_desc)); |
620 | 620 | ||
@@ -688,7 +688,7 @@ acpi_ds_method_data_get_type(u16 opcode, | |||
688 | struct acpi_namespace_node *node; | 688 | struct acpi_namespace_node *node; |
689 | union acpi_operand_object *object; | 689 | union acpi_operand_object *object; |
690 | 690 | ||
691 | ACPI_FUNCTION_TRACE("ds_method_data_get_type"); | 691 | ACPI_FUNCTION_TRACE(ds_method_data_get_type); |
692 | 692 | ||
693 | /* Get the namespace node for the arg/local */ | 693 | /* Get the namespace node for the arg/local */ |
694 | 694 | ||
diff --git a/drivers/acpi/dispatcher/dsobject.c b/drivers/acpi/dispatcher/dsobject.c index ce54715f13ad..72190abb1d59 100644 --- a/drivers/acpi/dispatcher/dsobject.c +++ b/drivers/acpi/dispatcher/dsobject.c | |||
@@ -81,7 +81,7 @@ acpi_ds_build_internal_object(struct acpi_walk_state *walk_state, | |||
81 | union acpi_operand_object *obj_desc; | 81 | union acpi_operand_object *obj_desc; |
82 | acpi_status status; | 82 | acpi_status status; |
83 | 83 | ||
84 | ACPI_FUNCTION_TRACE("ds_build_internal_object"); | 84 | ACPI_FUNCTION_TRACE(ds_build_internal_object); |
85 | 85 | ||
86 | *obj_desc_ptr = NULL; | 86 | *obj_desc_ptr = NULL; |
87 | if (op->common.aml_opcode == AML_INT_NAMEPATH_OP) { | 87 | if (op->common.aml_opcode == AML_INT_NAMEPATH_OP) { |
@@ -187,7 +187,7 @@ acpi_ds_build_internal_buffer_obj(struct acpi_walk_state *walk_state, | |||
187 | union acpi_parse_object *byte_list; | 187 | union acpi_parse_object *byte_list; |
188 | u32 byte_list_length = 0; | 188 | u32 byte_list_length = 0; |
189 | 189 | ||
190 | ACPI_FUNCTION_TRACE("ds_build_internal_buffer_obj"); | 190 | ACPI_FUNCTION_TRACE(ds_build_internal_buffer_obj); |
191 | 191 | ||
192 | /* | 192 | /* |
193 | * If we are evaluating a Named buffer object "Name (xxxx, Buffer)". | 193 | * If we are evaluating a Named buffer object "Name (xxxx, Buffer)". |
@@ -293,7 +293,7 @@ acpi_ds_build_internal_package_obj(struct acpi_walk_state *walk_state, | |||
293 | acpi_status status = AE_OK; | 293 | acpi_status status = AE_OK; |
294 | acpi_native_uint i; | 294 | acpi_native_uint i; |
295 | 295 | ||
296 | ACPI_FUNCTION_TRACE("ds_build_internal_package_obj"); | 296 | ACPI_FUNCTION_TRACE(ds_build_internal_package_obj); |
297 | 297 | ||
298 | /* Find the parent of a possibly nested package */ | 298 | /* Find the parent of a possibly nested package */ |
299 | 299 | ||
@@ -400,7 +400,7 @@ acpi_ds_create_node(struct acpi_walk_state *walk_state, | |||
400 | acpi_status status; | 400 | acpi_status status; |
401 | union acpi_operand_object *obj_desc; | 401 | union acpi_operand_object *obj_desc; |
402 | 402 | ||
403 | ACPI_FUNCTION_TRACE_PTR("ds_create_node", op); | 403 | ACPI_FUNCTION_TRACE_PTR(ds_create_node, op); |
404 | 404 | ||
405 | /* | 405 | /* |
406 | * Because of the execution pass through the non-control-method | 406 | * Because of the execution pass through the non-control-method |
@@ -469,7 +469,7 @@ acpi_ds_init_object_from_op(struct acpi_walk_state *walk_state, | |||
469 | union acpi_operand_object *obj_desc; | 469 | union acpi_operand_object *obj_desc; |
470 | acpi_status status = AE_OK; | 470 | acpi_status status = AE_OK; |
471 | 471 | ||
472 | ACPI_FUNCTION_TRACE("ds_init_object_from_op"); | 472 | ACPI_FUNCTION_TRACE(ds_init_object_from_op); |
473 | 473 | ||
474 | obj_desc = *ret_obj_desc; | 474 | obj_desc = *ret_obj_desc; |
475 | op_info = acpi_ps_get_opcode_info(opcode); | 475 | op_info = acpi_ps_get_opcode_info(opcode); |
diff --git a/drivers/acpi/dispatcher/dsopcode.c b/drivers/acpi/dispatcher/dsopcode.c index 8a690a9963f2..5b974a8fe614 100644 --- a/drivers/acpi/dispatcher/dsopcode.c +++ b/drivers/acpi/dispatcher/dsopcode.c | |||
@@ -91,7 +91,7 @@ acpi_ds_execute_arguments(struct acpi_namespace_node *node, | |||
91 | union acpi_parse_object *op; | 91 | union acpi_parse_object *op; |
92 | struct acpi_walk_state *walk_state; | 92 | struct acpi_walk_state *walk_state; |
93 | 93 | ||
94 | ACPI_FUNCTION_TRACE("ds_execute_arguments"); | 94 | ACPI_FUNCTION_TRACE(ds_execute_arguments); |
95 | 95 | ||
96 | /* | 96 | /* |
97 | * Allocate a new parser op to be the root of the parsed tree | 97 | * Allocate a new parser op to be the root of the parsed tree |
@@ -193,7 +193,7 @@ acpi_ds_get_buffer_field_arguments(union acpi_operand_object *obj_desc) | |||
193 | struct acpi_namespace_node *node; | 193 | struct acpi_namespace_node *node; |
194 | acpi_status status; | 194 | acpi_status status; |
195 | 195 | ||
196 | ACPI_FUNCTION_TRACE_PTR("ds_get_buffer_field_arguments", obj_desc); | 196 | ACPI_FUNCTION_TRACE_PTR(ds_get_buffer_field_arguments, obj_desc); |
197 | 197 | ||
198 | if (obj_desc->common.flags & AOPOBJ_DATA_VALID) { | 198 | if (obj_desc->common.flags & AOPOBJ_DATA_VALID) { |
199 | return_ACPI_STATUS(AE_OK); | 199 | return_ACPI_STATUS(AE_OK); |
@@ -206,7 +206,7 @@ acpi_ds_get_buffer_field_arguments(union acpi_operand_object *obj_desc) | |||
206 | 206 | ||
207 | ACPI_DEBUG_EXEC(acpi_ut_display_init_pathname | 207 | ACPI_DEBUG_EXEC(acpi_ut_display_init_pathname |
208 | (ACPI_TYPE_BUFFER_FIELD, node, NULL)); | 208 | (ACPI_TYPE_BUFFER_FIELD, node, NULL)); |
209 | ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "[%4.4s] buffer_field Arg Init\n", | 209 | ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "[%4.4s] BufferField Arg Init\n", |
210 | acpi_ut_get_node_name(node))); | 210 | acpi_ut_get_node_name(node))); |
211 | 211 | ||
212 | /* Execute the AML code for the term_arg arguments */ | 212 | /* Execute the AML code for the term_arg arguments */ |
@@ -235,7 +235,7 @@ acpi_status acpi_ds_get_buffer_arguments(union acpi_operand_object *obj_desc) | |||
235 | struct acpi_namespace_node *node; | 235 | struct acpi_namespace_node *node; |
236 | acpi_status status; | 236 | acpi_status status; |
237 | 237 | ||
238 | ACPI_FUNCTION_TRACE_PTR("ds_get_buffer_arguments", obj_desc); | 238 | ACPI_FUNCTION_TRACE_PTR(ds_get_buffer_arguments, obj_desc); |
239 | 239 | ||
240 | if (obj_desc->common.flags & AOPOBJ_DATA_VALID) { | 240 | if (obj_desc->common.flags & AOPOBJ_DATA_VALID) { |
241 | return_ACPI_STATUS(AE_OK); | 241 | return_ACPI_STATUS(AE_OK); |
@@ -279,7 +279,7 @@ acpi_status acpi_ds_get_package_arguments(union acpi_operand_object *obj_desc) | |||
279 | struct acpi_namespace_node *node; | 279 | struct acpi_namespace_node *node; |
280 | acpi_status status; | 280 | acpi_status status; |
281 | 281 | ||
282 | ACPI_FUNCTION_TRACE_PTR("ds_get_package_arguments", obj_desc); | 282 | ACPI_FUNCTION_TRACE_PTR(ds_get_package_arguments, obj_desc); |
283 | 283 | ||
284 | if (obj_desc->common.flags & AOPOBJ_DATA_VALID) { | 284 | if (obj_desc->common.flags & AOPOBJ_DATA_VALID) { |
285 | return_ACPI_STATUS(AE_OK); | 285 | return_ACPI_STATUS(AE_OK); |
@@ -324,7 +324,7 @@ acpi_status acpi_ds_get_region_arguments(union acpi_operand_object *obj_desc) | |||
324 | acpi_status status; | 324 | acpi_status status; |
325 | union acpi_operand_object *extra_desc; | 325 | union acpi_operand_object *extra_desc; |
326 | 326 | ||
327 | ACPI_FUNCTION_TRACE_PTR("ds_get_region_arguments", obj_desc); | 327 | ACPI_FUNCTION_TRACE_PTR(ds_get_region_arguments, obj_desc); |
328 | 328 | ||
329 | if (obj_desc->region.flags & AOPOBJ_DATA_VALID) { | 329 | if (obj_desc->region.flags & AOPOBJ_DATA_VALID) { |
330 | return_ACPI_STATUS(AE_OK); | 330 | return_ACPI_STATUS(AE_OK); |
@@ -342,8 +342,7 @@ acpi_status acpi_ds_get_region_arguments(union acpi_operand_object *obj_desc) | |||
342 | ACPI_DEBUG_EXEC(acpi_ut_display_init_pathname | 342 | ACPI_DEBUG_EXEC(acpi_ut_display_init_pathname |
343 | (ACPI_TYPE_REGION, node, NULL)); | 343 | (ACPI_TYPE_REGION, node, NULL)); |
344 | 344 | ||
345 | ACPI_DEBUG_PRINT((ACPI_DB_EXEC, | 345 | ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "[%4.4s] OpRegion Arg Init at AML %p\n", |
346 | "[%4.4s] op_region Arg Init at AML %p\n", | ||
347 | acpi_ut_get_node_name(node), | 346 | acpi_ut_get_node_name(node), |
348 | extra_desc->extra.aml_start)); | 347 | extra_desc->extra.aml_start)); |
349 | 348 | ||
@@ -352,6 +351,28 @@ acpi_status acpi_ds_get_region_arguments(union acpi_operand_object *obj_desc) | |||
352 | status = acpi_ds_execute_arguments(node, acpi_ns_get_parent_node(node), | 351 | status = acpi_ds_execute_arguments(node, acpi_ns_get_parent_node(node), |
353 | extra_desc->extra.aml_length, | 352 | extra_desc->extra.aml_length, |
354 | extra_desc->extra.aml_start); | 353 | extra_desc->extra.aml_start); |
354 | if (ACPI_FAILURE(status)) { | ||
355 | return_ACPI_STATUS(status); | ||
356 | } | ||
357 | |||
358 | /* Validate the region address/length via the host OS */ | ||
359 | |||
360 | status = acpi_os_validate_address(obj_desc->region.space_id, | ||
361 | obj_desc->region.address, | ||
362 | (acpi_size) obj_desc->region.length); | ||
363 | if (ACPI_FAILURE(status)) { | ||
364 | /* | ||
365 | * Invalid address/length. We will emit an error message and mark | ||
366 | * the region as invalid, so that it will cause an additional error if | ||
367 | * it is ever used. Then return AE_OK. | ||
368 | */ | ||
369 | ACPI_EXCEPTION((AE_INFO, status, | ||
370 | "During address validation of OpRegion [%4.4s]", | ||
371 | node->name.ascii)); | ||
372 | obj_desc->common.flags |= AOPOBJ_INVALID; | ||
373 | status = AE_OK; | ||
374 | } | ||
375 | |||
355 | return_ACPI_STATUS(status); | 376 | return_ACPI_STATUS(status); |
356 | } | 377 | } |
357 | 378 | ||
@@ -411,7 +432,7 @@ acpi_ds_init_buffer_field(u16 aml_opcode, | |||
411 | u8 field_flags; | 432 | u8 field_flags; |
412 | acpi_status status; | 433 | acpi_status status; |
413 | 434 | ||
414 | ACPI_FUNCTION_TRACE_PTR("ds_init_buffer_field", obj_desc); | 435 | ACPI_FUNCTION_TRACE_PTR(ds_init_buffer_field, obj_desc); |
415 | 436 | ||
416 | /* Host object must be a Buffer */ | 437 | /* Host object must be a Buffer */ |
417 | 438 | ||
@@ -457,7 +478,7 @@ acpi_ds_init_buffer_field(u16 aml_opcode, | |||
457 | 478 | ||
458 | if (bit_count == 0) { | 479 | if (bit_count == 0) { |
459 | ACPI_ERROR((AE_INFO, | 480 | ACPI_ERROR((AE_INFO, |
460 | "Attempt to create_field of length zero")); | 481 | "Attempt to CreateField of length zero")); |
461 | status = AE_AML_OPERAND_VALUE; | 482 | status = AE_AML_OPERAND_VALUE; |
462 | goto cleanup; | 483 | goto cleanup; |
463 | } | 484 | } |
@@ -595,7 +616,7 @@ acpi_ds_eval_buffer_field_operands(struct acpi_walk_state *walk_state, | |||
595 | struct acpi_namespace_node *node; | 616 | struct acpi_namespace_node *node; |
596 | union acpi_parse_object *next_op; | 617 | union acpi_parse_object *next_op; |
597 | 618 | ||
598 | ACPI_FUNCTION_TRACE_PTR("ds_eval_buffer_field_operands", op); | 619 | ACPI_FUNCTION_TRACE_PTR(ds_eval_buffer_field_operands, op); |
599 | 620 | ||
600 | /* | 621 | /* |
601 | * This is where we evaluate the address and length fields of the | 622 | * This is where we evaluate the address and length fields of the |
@@ -627,7 +648,7 @@ acpi_ds_eval_buffer_field_operands(struct acpi_walk_state *walk_state, | |||
627 | ACPI_DUMP_OPERANDS(ACPI_WALK_OPERANDS, ACPI_IMODE_EXECUTE, | 648 | ACPI_DUMP_OPERANDS(ACPI_WALK_OPERANDS, ACPI_IMODE_EXECUTE, |
628 | acpi_ps_get_opcode_name(op->common.aml_opcode), | 649 | acpi_ps_get_opcode_name(op->common.aml_opcode), |
629 | walk_state->num_operands, | 650 | walk_state->num_operands, |
630 | "after acpi_ex_resolve_operands"); | 651 | "after AcpiExResolveOperands"); |
631 | 652 | ||
632 | if (ACPI_FAILURE(status)) { | 653 | if (ACPI_FAILURE(status)) { |
633 | ACPI_ERROR((AE_INFO, "(%s) bad operand(s) (%X)", | 654 | ACPI_ERROR((AE_INFO, "(%s) bad operand(s) (%X)", |
@@ -686,7 +707,7 @@ acpi_ds_eval_region_operands(struct acpi_walk_state *walk_state, | |||
686 | struct acpi_namespace_node *node; | 707 | struct acpi_namespace_node *node; |
687 | union acpi_parse_object *next_op; | 708 | union acpi_parse_object *next_op; |
688 | 709 | ||
689 | ACPI_FUNCTION_TRACE_PTR("ds_eval_region_operands", op); | 710 | ACPI_FUNCTION_TRACE_PTR(ds_eval_region_operands, op); |
690 | 711 | ||
691 | /* | 712 | /* |
692 | * This is where we evaluate the address and length fields of the | 713 | * This is where we evaluate the address and length fields of the |
@@ -719,7 +740,7 @@ acpi_ds_eval_region_operands(struct acpi_walk_state *walk_state, | |||
719 | 740 | ||
720 | ACPI_DUMP_OPERANDS(ACPI_WALK_OPERANDS, ACPI_IMODE_EXECUTE, | 741 | ACPI_DUMP_OPERANDS(ACPI_WALK_OPERANDS, ACPI_IMODE_EXECUTE, |
721 | acpi_ps_get_opcode_name(op->common.aml_opcode), | 742 | acpi_ps_get_opcode_name(op->common.aml_opcode), |
722 | 1, "after acpi_ex_resolve_operands"); | 743 | 1, "after AcpiExResolveOperands"); |
723 | 744 | ||
724 | obj_desc = acpi_ns_get_attached_object(node); | 745 | obj_desc = acpi_ns_get_attached_object(node); |
725 | if (!obj_desc) { | 746 | if (!obj_desc) { |
@@ -745,7 +766,7 @@ acpi_ds_eval_region_operands(struct acpi_walk_state *walk_state, | |||
745 | operand_desc->integer.value; | 766 | operand_desc->integer.value; |
746 | acpi_ut_remove_reference(operand_desc); | 767 | acpi_ut_remove_reference(operand_desc); |
747 | 768 | ||
748 | ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "rgn_obj %p Addr %8.8X%8.8X Len %X\n", | 769 | ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "RgnObj %p Addr %8.8X%8.8X Len %X\n", |
749 | obj_desc, | 770 | obj_desc, |
750 | ACPI_FORMAT_UINT64(obj_desc->region.address), | 771 | ACPI_FORMAT_UINT64(obj_desc->region.address), |
751 | obj_desc->region.length)); | 772 | obj_desc->region.length)); |
@@ -781,7 +802,7 @@ acpi_ds_eval_data_object_operands(struct acpi_walk_state *walk_state, | |||
781 | union acpi_operand_object *arg_desc; | 802 | union acpi_operand_object *arg_desc; |
782 | u32 length; | 803 | u32 length; |
783 | 804 | ||
784 | ACPI_FUNCTION_TRACE("ds_eval_data_object_operands"); | 805 | ACPI_FUNCTION_TRACE(ds_eval_data_object_operands); |
785 | 806 | ||
786 | /* The first operand (for all of these data objects) is the length */ | 807 | /* The first operand (for all of these data objects) is the length */ |
787 | 808 | ||
@@ -875,7 +896,7 @@ acpi_ds_exec_begin_control_op(struct acpi_walk_state *walk_state, | |||
875 | acpi_status status = AE_OK; | 896 | acpi_status status = AE_OK; |
876 | union acpi_generic_state *control_state; | 897 | union acpi_generic_state *control_state; |
877 | 898 | ||
878 | ACPI_FUNCTION_NAME("ds_exec_begin_control_op"); | 899 | ACPI_FUNCTION_NAME(ds_exec_begin_control_op); |
879 | 900 | ||
880 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, "Op=%p Opcode=%2.2X State=%p\n", op, | 901 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, "Op=%p Opcode=%2.2X State=%p\n", op, |
881 | op->common.aml_opcode, walk_state)); | 902 | op->common.aml_opcode, walk_state)); |
@@ -953,7 +974,7 @@ acpi_ds_exec_end_control_op(struct acpi_walk_state * walk_state, | |||
953 | acpi_status status = AE_OK; | 974 | acpi_status status = AE_OK; |
954 | union acpi_generic_state *control_state; | 975 | union acpi_generic_state *control_state; |
955 | 976 | ||
956 | ACPI_FUNCTION_NAME("ds_exec_end_control_op"); | 977 | ACPI_FUNCTION_NAME(ds_exec_end_control_op); |
957 | 978 | ||
958 | switch (op->common.aml_opcode) { | 979 | switch (op->common.aml_opcode) { |
959 | case AML_IF_OP: | 980 | case AML_IF_OP: |
@@ -1099,7 +1120,7 @@ acpi_ds_exec_end_control_op(struct acpi_walk_state * walk_state, | |||
1099 | } | 1120 | } |
1100 | 1121 | ||
1101 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, | 1122 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, |
1102 | "Completed RETURN_OP State=%p, ret_val=%p\n", | 1123 | "Completed RETURN_OP State=%p, RetVal=%p\n", |
1103 | walk_state, walk_state->return_desc)); | 1124 | walk_state, walk_state->return_desc)); |
1104 | 1125 | ||
1105 | /* End the control method execution right now */ | 1126 | /* End the control method execution right now */ |
diff --git a/drivers/acpi/dispatcher/dsutils.c b/drivers/acpi/dispatcher/dsutils.c index ab24aa88e2fa..05230baf5de8 100644 --- a/drivers/acpi/dispatcher/dsutils.c +++ b/drivers/acpi/dispatcher/dsutils.c | |||
@@ -68,7 +68,7 @@ ACPI_MODULE_NAME("dsutils") | |||
68 | ******************************************************************************/ | 68 | ******************************************************************************/ |
69 | void acpi_ds_clear_implicit_return(struct acpi_walk_state *walk_state) | 69 | void acpi_ds_clear_implicit_return(struct acpi_walk_state *walk_state) |
70 | { | 70 | { |
71 | ACPI_FUNCTION_NAME("ds_clear_implicit_return"); | 71 | ACPI_FUNCTION_NAME(ds_clear_implicit_return); |
72 | 72 | ||
73 | /* | 73 | /* |
74 | * Slack must be enabled for this feature | 74 | * Slack must be enabled for this feature |
@@ -115,7 +115,7 @@ u8 | |||
115 | acpi_ds_do_implicit_return(union acpi_operand_object *return_desc, | 115 | acpi_ds_do_implicit_return(union acpi_operand_object *return_desc, |
116 | struct acpi_walk_state *walk_state, u8 add_reference) | 116 | struct acpi_walk_state *walk_state, u8 add_reference) |
117 | { | 117 | { |
118 | ACPI_FUNCTION_NAME("ds_do_implicit_return"); | 118 | ACPI_FUNCTION_NAME(ds_do_implicit_return); |
119 | 119 | ||
120 | /* | 120 | /* |
121 | * Slack must be enabled for this feature, and we must | 121 | * Slack must be enabled for this feature, and we must |
@@ -171,7 +171,7 @@ acpi_ds_is_result_used(union acpi_parse_object * op, | |||
171 | { | 171 | { |
172 | const struct acpi_opcode_info *parent_info; | 172 | const struct acpi_opcode_info *parent_info; |
173 | 173 | ||
174 | ACPI_FUNCTION_TRACE_PTR("ds_is_result_used", op); | 174 | ACPI_FUNCTION_TRACE_PTR(ds_is_result_used, op); |
175 | 175 | ||
176 | /* Must have both an Op and a Result Object */ | 176 | /* Must have both an Op and a Result Object */ |
177 | 177 | ||
@@ -341,7 +341,7 @@ acpi_ds_delete_result_if_not_used(union acpi_parse_object *op, | |||
341 | union acpi_operand_object *obj_desc; | 341 | union acpi_operand_object *obj_desc; |
342 | acpi_status status; | 342 | acpi_status status; |
343 | 343 | ||
344 | ACPI_FUNCTION_TRACE_PTR("ds_delete_result_if_not_used", result_obj); | 344 | ACPI_FUNCTION_TRACE_PTR(ds_delete_result_if_not_used, result_obj); |
345 | 345 | ||
346 | if (!op) { | 346 | if (!op) { |
347 | ACPI_ERROR((AE_INFO, "Null Op")); | 347 | ACPI_ERROR((AE_INFO, "Null Op")); |
@@ -384,7 +384,7 @@ acpi_status acpi_ds_resolve_operands(struct acpi_walk_state *walk_state) | |||
384 | u32 i; | 384 | u32 i; |
385 | acpi_status status = AE_OK; | 385 | acpi_status status = AE_OK; |
386 | 386 | ||
387 | ACPI_FUNCTION_TRACE_PTR("ds_resolve_operands", walk_state); | 387 | ACPI_FUNCTION_TRACE_PTR(ds_resolve_operands, walk_state); |
388 | 388 | ||
389 | /* | 389 | /* |
390 | * Attempt to resolve each of the valid operands | 390 | * Attempt to resolve each of the valid operands |
@@ -419,7 +419,7 @@ void acpi_ds_clear_operands(struct acpi_walk_state *walk_state) | |||
419 | { | 419 | { |
420 | u32 i; | 420 | u32 i; |
421 | 421 | ||
422 | ACPI_FUNCTION_TRACE_PTR("ds_clear_operands", walk_state); | 422 | ACPI_FUNCTION_TRACE_PTR(ds_clear_operands, walk_state); |
423 | 423 | ||
424 | /* Remove a reference on each operand on the stack */ | 424 | /* Remove a reference on each operand on the stack */ |
425 | 425 | ||
@@ -467,7 +467,7 @@ acpi_ds_create_operand(struct acpi_walk_state *walk_state, | |||
467 | acpi_interpreter_mode interpreter_mode; | 467 | acpi_interpreter_mode interpreter_mode; |
468 | const struct acpi_opcode_info *op_info; | 468 | const struct acpi_opcode_info *op_info; |
469 | 469 | ||
470 | ACPI_FUNCTION_TRACE_PTR("ds_create_operand", arg); | 470 | ACPI_FUNCTION_TRACE_PTR(ds_create_operand, arg); |
471 | 471 | ||
472 | /* A valid name must be looked up in the namespace */ | 472 | /* A valid name must be looked up in the namespace */ |
473 | 473 | ||
@@ -701,7 +701,7 @@ acpi_ds_create_operands(struct acpi_walk_state *walk_state, | |||
701 | union acpi_parse_object *arg; | 701 | union acpi_parse_object *arg; |
702 | u32 arg_count = 0; | 702 | u32 arg_count = 0; |
703 | 703 | ||
704 | ACPI_FUNCTION_TRACE_PTR("ds_create_operands", first_arg); | 704 | ACPI_FUNCTION_TRACE_PTR(ds_create_operands, first_arg); |
705 | 705 | ||
706 | /* For all arguments in the list... */ | 706 | /* For all arguments in the list... */ |
707 | 707 | ||
diff --git a/drivers/acpi/dispatcher/dswexec.c b/drivers/acpi/dispatcher/dswexec.c index 8b740b370eb1..8afb20384e96 100644 --- a/drivers/acpi/dispatcher/dswexec.c +++ b/drivers/acpi/dispatcher/dswexec.c | |||
@@ -92,7 +92,7 @@ acpi_ds_get_predicate_value(struct acpi_walk_state *walk_state, | |||
92 | union acpi_operand_object *obj_desc; | 92 | union acpi_operand_object *obj_desc; |
93 | union acpi_operand_object *local_obj_desc = NULL; | 93 | union acpi_operand_object *local_obj_desc = NULL; |
94 | 94 | ||
95 | ACPI_FUNCTION_TRACE_PTR("ds_get_predicate_value", walk_state); | 95 | ACPI_FUNCTION_TRACE_PTR(ds_get_predicate_value, walk_state); |
96 | 96 | ||
97 | walk_state->control_state->common.state = 0; | 97 | walk_state->control_state->common.state = 0; |
98 | 98 | ||
@@ -122,7 +122,7 @@ acpi_ds_get_predicate_value(struct acpi_walk_state *walk_state, | |||
122 | 122 | ||
123 | if (!obj_desc) { | 123 | if (!obj_desc) { |
124 | ACPI_ERROR((AE_INFO, | 124 | ACPI_ERROR((AE_INFO, |
125 | "No predicate obj_desc=%p State=%p", | 125 | "No predicate ObjDesc=%p State=%p", |
126 | obj_desc, walk_state)); | 126 | obj_desc, walk_state)); |
127 | 127 | ||
128 | return_ACPI_STATUS(AE_AML_NO_OPERAND); | 128 | return_ACPI_STATUS(AE_AML_NO_OPERAND); |
@@ -139,7 +139,7 @@ acpi_ds_get_predicate_value(struct acpi_walk_state *walk_state, | |||
139 | 139 | ||
140 | if (ACPI_GET_OBJECT_TYPE(local_obj_desc) != ACPI_TYPE_INTEGER) { | 140 | if (ACPI_GET_OBJECT_TYPE(local_obj_desc) != ACPI_TYPE_INTEGER) { |
141 | ACPI_ERROR((AE_INFO, | 141 | ACPI_ERROR((AE_INFO, |
142 | "Bad predicate (not an integer) obj_desc=%p State=%p Type=%X", | 142 | "Bad predicate (not an integer) ObjDesc=%p State=%p Type=%X", |
143 | obj_desc, walk_state, | 143 | obj_desc, walk_state, |
144 | ACPI_GET_OBJECT_TYPE(obj_desc))); | 144 | ACPI_GET_OBJECT_TYPE(obj_desc))); |
145 | 145 | ||
@@ -213,7 +213,7 @@ acpi_ds_exec_begin_op(struct acpi_walk_state *walk_state, | |||
213 | acpi_status status = AE_OK; | 213 | acpi_status status = AE_OK; |
214 | u32 opcode_class; | 214 | u32 opcode_class; |
215 | 215 | ||
216 | ACPI_FUNCTION_TRACE_PTR("ds_exec_begin_op", walk_state); | 216 | ACPI_FUNCTION_TRACE_PTR(ds_exec_begin_op, walk_state); |
217 | 217 | ||
218 | op = walk_state->op; | 218 | op = walk_state->op; |
219 | if (!op) { | 219 | if (!op) { |
@@ -353,7 +353,7 @@ acpi_status acpi_ds_exec_end_op(struct acpi_walk_state *walk_state) | |||
353 | union acpi_parse_object *next_op; | 353 | union acpi_parse_object *next_op; |
354 | union acpi_parse_object *first_arg; | 354 | union acpi_parse_object *first_arg; |
355 | 355 | ||
356 | ACPI_FUNCTION_TRACE_PTR("ds_exec_end_op", walk_state); | 356 | ACPI_FUNCTION_TRACE_PTR(ds_exec_end_op, walk_state); |
357 | 357 | ||
358 | op = walk_state->op; | 358 | op = walk_state->op; |
359 | op_type = walk_state->op_info->type; | 359 | op_type = walk_state->op_info->type; |
@@ -423,7 +423,7 @@ acpi_status acpi_ds_exec_end_op(struct acpi_walk_state *walk_state) | |||
423 | acpi_ps_get_opcode_name | 423 | acpi_ps_get_opcode_name |
424 | (walk_state->opcode), | 424 | (walk_state->opcode), |
425 | walk_state->num_operands, | 425 | walk_state->num_operands, |
426 | "after ex_resolve_operands"); | 426 | "after ExResolveOperands"); |
427 | } | 427 | } |
428 | } | 428 | } |
429 | 429 | ||
@@ -437,7 +437,7 @@ acpi_status acpi_ds_exec_end_op(struct acpi_walk_state *walk_state) | |||
437 | acpi_gbl_op_type_dispatch[op_type] (walk_state); | 437 | acpi_gbl_op_type_dispatch[op_type] (walk_state); |
438 | } else { | 438 | } else { |
439 | /* | 439 | /* |
440 | * Treat constructs of the form "Store(local_x,local_x)" as noops when the | 440 | * Treat constructs of the form "Store(LocalX,LocalX)" as noops when the |
441 | * Local is uninitialized. | 441 | * Local is uninitialized. |
442 | */ | 442 | */ |
443 | if ((status == AE_AML_UNINITIALIZED_LOCAL) && | 443 | if ((status == AE_AML_UNINITIALIZED_LOCAL) && |
@@ -570,7 +570,7 @@ acpi_status acpi_ds_exec_end_op(struct acpi_walk_state *walk_state) | |||
570 | case AML_TYPE_CREATE_FIELD: | 570 | case AML_TYPE_CREATE_FIELD: |
571 | 571 | ||
572 | ACPI_DEBUG_PRINT((ACPI_DB_EXEC, | 572 | ACPI_DEBUG_PRINT((ACPI_DB_EXEC, |
573 | "Executing create_field Buffer/Index Op=%p\n", | 573 | "Executing CreateField Buffer/Index Op=%p\n", |
574 | op)); | 574 | op)); |
575 | 575 | ||
576 | status = acpi_ds_load2_end_op(walk_state); | 576 | status = acpi_ds_load2_end_op(walk_state); |
@@ -585,7 +585,7 @@ acpi_status acpi_ds_exec_end_op(struct acpi_walk_state *walk_state) | |||
585 | case AML_TYPE_CREATE_OBJECT: | 585 | case AML_TYPE_CREATE_OBJECT: |
586 | 586 | ||
587 | ACPI_DEBUG_PRINT((ACPI_DB_EXEC, | 587 | ACPI_DEBUG_PRINT((ACPI_DB_EXEC, |
588 | "Executing create_object (Buffer/Package) Op=%p\n", | 588 | "Executing CreateObject (Buffer/Package) Op=%p\n", |
589 | op)); | 589 | op)); |
590 | 590 | ||
591 | switch (op->common.parent->common.aml_opcode) { | 591 | switch (op->common.parent->common.aml_opcode) { |
@@ -658,7 +658,7 @@ acpi_status acpi_ds_exec_end_op(struct acpi_walk_state *walk_state) | |||
658 | 658 | ||
659 | if (op->common.aml_opcode == AML_REGION_OP) { | 659 | if (op->common.aml_opcode == AML_REGION_OP) { |
660 | ACPI_DEBUG_PRINT((ACPI_DB_EXEC, | 660 | ACPI_DEBUG_PRINT((ACPI_DB_EXEC, |
661 | "Executing op_region Address/Length Op=%p\n", | 661 | "Executing OpRegion Address/Length Op=%p\n", |
662 | op)); | 662 | op)); |
663 | 663 | ||
664 | status = | 664 | status = |
diff --git a/drivers/acpi/dispatcher/dswload.c b/drivers/acpi/dispatcher/dswload.c index 1ad7870101fb..a8deb700cf33 100644 --- a/drivers/acpi/dispatcher/dswload.c +++ b/drivers/acpi/dispatcher/dswload.c | |||
@@ -127,7 +127,7 @@ acpi_ds_load1_begin_op(struct acpi_walk_state * walk_state, | |||
127 | char *path; | 127 | char *path; |
128 | u32 flags; | 128 | u32 flags; |
129 | 129 | ||
130 | ACPI_FUNCTION_TRACE("ds_load1_begin_op"); | 130 | ACPI_FUNCTION_TRACE(ds_load1_begin_op); |
131 | 131 | ||
132 | op = walk_state->op; | 132 | op = walk_state->op; |
133 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, "Op=%p State=%p\n", op, | 133 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, "Op=%p State=%p\n", op, |
@@ -361,7 +361,7 @@ acpi_status acpi_ds_load1_end_op(struct acpi_walk_state *walk_state) | |||
361 | acpi_object_type object_type; | 361 | acpi_object_type object_type; |
362 | acpi_status status = AE_OK; | 362 | acpi_status status = AE_OK; |
363 | 363 | ||
364 | ACPI_FUNCTION_TRACE("ds_load1_end_op"); | 364 | ACPI_FUNCTION_TRACE(ds_load1_end_op); |
365 | 365 | ||
366 | op = walk_state->op; | 366 | op = walk_state->op; |
367 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, "Op=%p State=%p\n", op, | 367 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, "Op=%p State=%p\n", op, |
@@ -448,7 +448,7 @@ acpi_status acpi_ds_load1_end_op(struct acpi_walk_state *walk_state) | |||
448 | * arguments.) | 448 | * arguments.) |
449 | */ | 449 | */ |
450 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, | 450 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, |
451 | "LOADING-Method: State=%p Op=%p named_obj=%p\n", | 451 | "LOADING-Method: State=%p Op=%p NamedObj=%p\n", |
452 | walk_state, op, op->named.node)); | 452 | walk_state, op, op->named.node)); |
453 | 453 | ||
454 | if (!acpi_ns_get_attached_object(op->named.node)) { | 454 | if (!acpi_ns_get_attached_object(op->named.node)) { |
@@ -514,7 +514,7 @@ acpi_ds_load2_begin_op(struct acpi_walk_state *walk_state, | |||
514 | acpi_object_type object_type; | 514 | acpi_object_type object_type; |
515 | char *buffer_ptr; | 515 | char *buffer_ptr; |
516 | 516 | ||
517 | ACPI_FUNCTION_TRACE("ds_load2_begin_op"); | 517 | ACPI_FUNCTION_TRACE(ds_load2_begin_op); |
518 | 518 | ||
519 | op = walk_state->op; | 519 | op = walk_state->op; |
520 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, "Op=%p State=%p\n", op, | 520 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, "Op=%p State=%p\n", op, |
@@ -785,7 +785,7 @@ acpi_status acpi_ds_load2_end_op(struct acpi_walk_state *walk_state) | |||
785 | u32 i; | 785 | u32 i; |
786 | #endif | 786 | #endif |
787 | 787 | ||
788 | ACPI_FUNCTION_TRACE("ds_load2_end_op"); | 788 | ACPI_FUNCTION_TRACE(ds_load2_end_op); |
789 | 789 | ||
790 | op = walk_state->op; | 790 | op = walk_state->op; |
791 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, "Opcode [%s] Op %p State %p\n", | 791 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, "Opcode [%s] Op %p State %p\n", |
@@ -879,7 +879,7 @@ acpi_status acpi_ds_load2_end_op(struct acpi_walk_state *walk_state) | |||
879 | */ | 879 | */ |
880 | 880 | ||
881 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, | 881 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, |
882 | "Create-Load [%s] State=%p Op=%p named_obj=%p\n", | 882 | "Create-Load [%s] State=%p Op=%p NamedObj=%p\n", |
883 | acpi_ps_get_opcode_name(op->common.aml_opcode), | 883 | acpi_ps_get_opcode_name(op->common.aml_opcode), |
884 | walk_state, op, node)); | 884 | walk_state, op, node)); |
885 | 885 | ||
@@ -1054,7 +1054,7 @@ acpi_status acpi_ds_load2_end_op(struct acpi_walk_state *walk_state) | |||
1054 | * arguments.) | 1054 | * arguments.) |
1055 | */ | 1055 | */ |
1056 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, | 1056 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, |
1057 | "LOADING-Method: State=%p Op=%p named_obj=%p\n", | 1057 | "LOADING-Method: State=%p Op=%p NamedObj=%p\n", |
1058 | walk_state, op, op->named.node)); | 1058 | walk_state, op, op->named.node)); |
1059 | 1059 | ||
1060 | if (!acpi_ns_get_attached_object(op->named.node)) { | 1060 | if (!acpi_ns_get_attached_object(op->named.node)) { |
@@ -1099,7 +1099,7 @@ acpi_status acpi_ds_load2_end_op(struct acpi_walk_state *walk_state) | |||
1099 | case AML_CLASS_METHOD_CALL: | 1099 | case AML_CLASS_METHOD_CALL: |
1100 | 1100 | ||
1101 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, | 1101 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, |
1102 | "RESOLVING-method_call: State=%p Op=%p named_obj=%p\n", | 1102 | "RESOLVING-MethodCall: State=%p Op=%p NamedObj=%p\n", |
1103 | walk_state, op, node)); | 1103 | walk_state, op, node)); |
1104 | 1104 | ||
1105 | /* | 1105 | /* |
diff --git a/drivers/acpi/dispatcher/dswscope.c b/drivers/acpi/dispatcher/dswscope.c index 3cd6895ed2c3..c9228972f5f6 100644 --- a/drivers/acpi/dispatcher/dswscope.c +++ b/drivers/acpi/dispatcher/dswscope.c | |||
@@ -63,7 +63,7 @@ void acpi_ds_scope_stack_clear(struct acpi_walk_state *walk_state) | |||
63 | { | 63 | { |
64 | union acpi_generic_state *scope_info; | 64 | union acpi_generic_state *scope_info; |
65 | 65 | ||
66 | ACPI_FUNCTION_NAME("ds_scope_stack_clear"); | 66 | ACPI_FUNCTION_NAME(ds_scope_stack_clear); |
67 | 67 | ||
68 | while (walk_state->scope_info) { | 68 | while (walk_state->scope_info) { |
69 | 69 | ||
@@ -103,7 +103,7 @@ acpi_ds_scope_stack_push(struct acpi_namespace_node *node, | |||
103 | union acpi_generic_state *scope_info; | 103 | union acpi_generic_state *scope_info; |
104 | union acpi_generic_state *old_scope_info; | 104 | union acpi_generic_state *old_scope_info; |
105 | 105 | ||
106 | ACPI_FUNCTION_TRACE("ds_scope_stack_push"); | 106 | ACPI_FUNCTION_TRACE(ds_scope_stack_push); |
107 | 107 | ||
108 | if (!node) { | 108 | if (!node) { |
109 | 109 | ||
@@ -178,7 +178,7 @@ acpi_status acpi_ds_scope_stack_pop(struct acpi_walk_state *walk_state) | |||
178 | union acpi_generic_state *scope_info; | 178 | union acpi_generic_state *scope_info; |
179 | union acpi_generic_state *new_scope_info; | 179 | union acpi_generic_state *new_scope_info; |
180 | 180 | ||
181 | ACPI_FUNCTION_TRACE("ds_scope_stack_pop"); | 181 | ACPI_FUNCTION_TRACE(ds_scope_stack_pop); |
182 | 182 | ||
183 | /* | 183 | /* |
184 | * Pop scope info object off the stack. | 184 | * Pop scope info object off the stack. |
diff --git a/drivers/acpi/dispatcher/dswstate.c b/drivers/acpi/dispatcher/dswstate.c index 4840eae47d34..82c1e219bf15 100644 --- a/drivers/acpi/dispatcher/dswstate.c +++ b/drivers/acpi/dispatcher/dswstate.c | |||
@@ -87,7 +87,7 @@ acpi_ds_result_remove(union acpi_operand_object **object, | |||
87 | { | 87 | { |
88 | union acpi_generic_state *state; | 88 | union acpi_generic_state *state; |
89 | 89 | ||
90 | ACPI_FUNCTION_NAME("ds_result_remove"); | 90 | ACPI_FUNCTION_NAME(ds_result_remove); |
91 | 91 | ||
92 | state = walk_state->results; | 92 | state = walk_state->results; |
93 | if (!state) { | 93 | if (!state) { |
@@ -150,7 +150,7 @@ acpi_ds_result_pop(union acpi_operand_object ** object, | |||
150 | acpi_native_uint index; | 150 | acpi_native_uint index; |
151 | union acpi_generic_state *state; | 151 | union acpi_generic_state *state; |
152 | 152 | ||
153 | ACPI_FUNCTION_NAME("ds_result_pop"); | 153 | ACPI_FUNCTION_NAME(ds_result_pop); |
154 | 154 | ||
155 | state = walk_state->results; | 155 | state = walk_state->results; |
156 | if (!state) { | 156 | if (!state) { |
@@ -212,7 +212,7 @@ acpi_ds_result_pop_from_bottom(union acpi_operand_object ** object, | |||
212 | acpi_native_uint index; | 212 | acpi_native_uint index; |
213 | union acpi_generic_state *state; | 213 | union acpi_generic_state *state; |
214 | 214 | ||
215 | ACPI_FUNCTION_NAME("ds_result_pop_from_bottom"); | 215 | ACPI_FUNCTION_NAME(ds_result_pop_from_bottom); |
216 | 216 | ||
217 | state = walk_state->results; | 217 | state = walk_state->results; |
218 | if (!state) { | 218 | if (!state) { |
@@ -277,7 +277,7 @@ acpi_ds_result_push(union acpi_operand_object * object, | |||
277 | { | 277 | { |
278 | union acpi_generic_state *state; | 278 | union acpi_generic_state *state; |
279 | 279 | ||
280 | ACPI_FUNCTION_NAME("ds_result_push"); | 280 | ACPI_FUNCTION_NAME(ds_result_push); |
281 | 281 | ||
282 | state = walk_state->results; | 282 | state = walk_state->results; |
283 | if (!state) { | 283 | if (!state) { |
@@ -330,7 +330,7 @@ acpi_status acpi_ds_result_stack_push(struct acpi_walk_state * walk_state) | |||
330 | { | 330 | { |
331 | union acpi_generic_state *state; | 331 | union acpi_generic_state *state; |
332 | 332 | ||
333 | ACPI_FUNCTION_NAME("ds_result_stack_push"); | 333 | ACPI_FUNCTION_NAME(ds_result_stack_push); |
334 | 334 | ||
335 | state = acpi_ut_create_generic_state(); | 335 | state = acpi_ut_create_generic_state(); |
336 | if (!state) { | 336 | if (!state) { |
@@ -362,7 +362,7 @@ acpi_status acpi_ds_result_stack_pop(struct acpi_walk_state * walk_state) | |||
362 | { | 362 | { |
363 | union acpi_generic_state *state; | 363 | union acpi_generic_state *state; |
364 | 364 | ||
365 | ACPI_FUNCTION_NAME("ds_result_stack_pop"); | 365 | ACPI_FUNCTION_NAME(ds_result_stack_pop); |
366 | 366 | ||
367 | /* Check for stack underflow */ | 367 | /* Check for stack underflow */ |
368 | 368 | ||
@@ -375,7 +375,7 @@ acpi_status acpi_ds_result_stack_pop(struct acpi_walk_state * walk_state) | |||
375 | state = acpi_ut_pop_generic_state(&walk_state->results); | 375 | state = acpi_ut_pop_generic_state(&walk_state->results); |
376 | 376 | ||
377 | ACPI_DEBUG_PRINT((ACPI_DB_EXEC, | 377 | ACPI_DEBUG_PRINT((ACPI_DB_EXEC, |
378 | "Result=%p remaining_results=%X State=%p\n", | 378 | "Result=%p RemainingResults=%X State=%p\n", |
379 | state, state->results.num_results, walk_state)); | 379 | state, state->results.num_results, walk_state)); |
380 | 380 | ||
381 | acpi_ut_delete_generic_state(state); | 381 | acpi_ut_delete_generic_state(state); |
@@ -399,7 +399,7 @@ acpi_status acpi_ds_result_stack_pop(struct acpi_walk_state * walk_state) | |||
399 | acpi_status | 399 | acpi_status |
400 | acpi_ds_obj_stack_push(void *object, struct acpi_walk_state * walk_state) | 400 | acpi_ds_obj_stack_push(void *object, struct acpi_walk_state * walk_state) |
401 | { | 401 | { |
402 | ACPI_FUNCTION_NAME("ds_obj_stack_push"); | 402 | ACPI_FUNCTION_NAME(ds_obj_stack_push); |
403 | 403 | ||
404 | /* Check for stack overflow */ | 404 | /* Check for stack overflow */ |
405 | 405 | ||
@@ -444,7 +444,7 @@ acpi_ds_obj_stack_pop(u32 pop_count, struct acpi_walk_state * walk_state) | |||
444 | { | 444 | { |
445 | u32 i; | 445 | u32 i; |
446 | 446 | ||
447 | ACPI_FUNCTION_NAME("ds_obj_stack_pop"); | 447 | ACPI_FUNCTION_NAME(ds_obj_stack_pop); |
448 | 448 | ||
449 | for (i = 0; i < pop_count; i++) { | 449 | for (i = 0; i < pop_count; i++) { |
450 | 450 | ||
@@ -491,7 +491,7 @@ acpi_ds_obj_stack_pop_and_delete(u32 pop_count, | |||
491 | u32 i; | 491 | u32 i; |
492 | union acpi_operand_object *obj_desc; | 492 | union acpi_operand_object *obj_desc; |
493 | 493 | ||
494 | ACPI_FUNCTION_NAME("ds_obj_stack_pop_and_delete"); | 494 | ACPI_FUNCTION_NAME(ds_obj_stack_pop_and_delete); |
495 | 495 | ||
496 | for (i = 0; i < pop_count; i++) { | 496 | for (i = 0; i < pop_count; i++) { |
497 | 497 | ||
@@ -539,13 +539,13 @@ acpi_ds_obj_stack_pop_and_delete(u32 pop_count, | |||
539 | struct acpi_walk_state *acpi_ds_get_current_walk_state(struct acpi_thread_state | 539 | struct acpi_walk_state *acpi_ds_get_current_walk_state(struct acpi_thread_state |
540 | *thread) | 540 | *thread) |
541 | { | 541 | { |
542 | ACPI_FUNCTION_NAME("ds_get_current_walk_state"); | 542 | ACPI_FUNCTION_NAME(ds_get_current_walk_state); |
543 | 543 | ||
544 | if (!thread) { | 544 | if (!thread) { |
545 | return (NULL); | 545 | return (NULL); |
546 | } | 546 | } |
547 | 547 | ||
548 | ACPI_DEBUG_PRINT((ACPI_DB_PARSE, "Current walk_state %p\n", | 548 | ACPI_DEBUG_PRINT((ACPI_DB_PARSE, "Current WalkState %p\n", |
549 | thread->walk_state_list)); | 549 | thread->walk_state_list)); |
550 | 550 | ||
551 | return (thread->walk_state_list); | 551 | return (thread->walk_state_list); |
@@ -568,7 +568,7 @@ void | |||
568 | acpi_ds_push_walk_state(struct acpi_walk_state *walk_state, | 568 | acpi_ds_push_walk_state(struct acpi_walk_state *walk_state, |
569 | struct acpi_thread_state *thread) | 569 | struct acpi_thread_state *thread) |
570 | { | 570 | { |
571 | ACPI_FUNCTION_TRACE("ds_push_walk_state"); | 571 | ACPI_FUNCTION_TRACE(ds_push_walk_state); |
572 | 572 | ||
573 | walk_state->next = thread->walk_state_list; | 573 | walk_state->next = thread->walk_state_list; |
574 | thread->walk_state_list = walk_state; | 574 | thread->walk_state_list = walk_state; |
@@ -594,7 +594,7 @@ struct acpi_walk_state *acpi_ds_pop_walk_state(struct acpi_thread_state *thread) | |||
594 | { | 594 | { |
595 | struct acpi_walk_state *walk_state; | 595 | struct acpi_walk_state *walk_state; |
596 | 596 | ||
597 | ACPI_FUNCTION_TRACE("ds_pop_walk_state"); | 597 | ACPI_FUNCTION_TRACE(ds_pop_walk_state); |
598 | 598 | ||
599 | walk_state = thread->walk_state_list; | 599 | walk_state = thread->walk_state_list; |
600 | 600 | ||
@@ -641,7 +641,7 @@ struct acpi_walk_state *acpi_ds_create_walk_state(acpi_owner_id owner_id, | |||
641 | struct acpi_walk_state *walk_state; | 641 | struct acpi_walk_state *walk_state; |
642 | acpi_status status; | 642 | acpi_status status; |
643 | 643 | ||
644 | ACPI_FUNCTION_TRACE("ds_create_walk_state"); | 644 | ACPI_FUNCTION_TRACE(ds_create_walk_state); |
645 | 645 | ||
646 | walk_state = ACPI_ALLOCATE_ZEROED(sizeof(struct acpi_walk_state)); | 646 | walk_state = ACPI_ALLOCATE_ZEROED(sizeof(struct acpi_walk_state)); |
647 | if (!walk_state) { | 647 | if (!walk_state) { |
@@ -709,7 +709,7 @@ acpi_ds_init_aml_walk(struct acpi_walk_state *walk_state, | |||
709 | struct acpi_parse_state *parser_state = &walk_state->parser_state; | 709 | struct acpi_parse_state *parser_state = &walk_state->parser_state; |
710 | union acpi_parse_object *extra_op; | 710 | union acpi_parse_object *extra_op; |
711 | 711 | ||
712 | ACPI_FUNCTION_TRACE("ds_init_aml_walk"); | 712 | ACPI_FUNCTION_TRACE(ds_init_aml_walk); |
713 | 713 | ||
714 | walk_state->parser_state.aml = | 714 | walk_state->parser_state.aml = |
715 | walk_state->parser_state.aml_start = aml_start; | 715 | walk_state->parser_state.aml_start = aml_start; |
@@ -813,7 +813,7 @@ void acpi_ds_delete_walk_state(struct acpi_walk_state *walk_state) | |||
813 | { | 813 | { |
814 | union acpi_generic_state *state; | 814 | union acpi_generic_state *state; |
815 | 815 | ||
816 | ACPI_FUNCTION_TRACE_PTR("ds_delete_walk_state", walk_state); | 816 | ACPI_FUNCTION_TRACE_PTR(ds_delete_walk_state, walk_state); |
817 | 817 | ||
818 | if (!walk_state) { | 818 | if (!walk_state) { |
819 | return; | 819 | return; |
@@ -882,7 +882,7 @@ acpi_ds_result_insert(void *object, | |||
882 | { | 882 | { |
883 | union acpi_generic_state *state; | 883 | union acpi_generic_state *state; |
884 | 884 | ||
885 | ACPI_FUNCTION_NAME("ds_result_insert"); | 885 | ACPI_FUNCTION_NAME(ds_result_insert); |
886 | 886 | ||
887 | state = walk_state->results; | 887 | state = walk_state->results; |
888 | if (!state) { | 888 | if (!state) { |
@@ -940,7 +940,7 @@ acpi_status acpi_ds_obj_stack_delete_all(struct acpi_walk_state * walk_state) | |||
940 | { | 940 | { |
941 | u32 i; | 941 | u32 i; |
942 | 942 | ||
943 | ACPI_FUNCTION_TRACE_PTR("ds_obj_stack_delete_all", walk_state); | 943 | ACPI_FUNCTION_TRACE_PTR(ds_obj_stack_delete_all, walk_state); |
944 | 944 | ||
945 | /* The stack size is configurable, but fixed */ | 945 | /* The stack size is configurable, but fixed */ |
946 | 946 | ||
@@ -972,7 +972,7 @@ acpi_status | |||
972 | acpi_ds_obj_stack_pop_object(union acpi_operand_object **object, | 972 | acpi_ds_obj_stack_pop_object(union acpi_operand_object **object, |
973 | struct acpi_walk_state *walk_state) | 973 | struct acpi_walk_state *walk_state) |
974 | { | 974 | { |
975 | ACPI_FUNCTION_NAME("ds_obj_stack_pop_object"); | 975 | ACPI_FUNCTION_NAME(ds_obj_stack_pop_object); |
976 | 976 | ||
977 | /* Check for stack underflow */ | 977 | /* Check for stack underflow */ |
978 | 978 | ||
@@ -1028,7 +1028,7 @@ acpi_ds_obj_stack_pop_object(union acpi_operand_object **object, | |||
1028 | void *acpi_ds_obj_stack_get_value(u32 index, struct acpi_walk_state *walk_state) | 1028 | void *acpi_ds_obj_stack_get_value(u32 index, struct acpi_walk_state *walk_state) |
1029 | { | 1029 | { |
1030 | 1030 | ||
1031 | ACPI_FUNCTION_TRACE_PTR("ds_obj_stack_get_value", walk_state); | 1031 | ACPI_FUNCTION_TRACE_PTR(ds_obj_stack_get_value, walk_state); |
1032 | 1032 | ||
1033 | /* Can't do it if the stack is empty */ | 1033 | /* Can't do it if the stack is empty */ |
1034 | 1034 | ||