From d08439be09437557d835ca2033ef10ba7d37142a Mon Sep 17 00:00:00 2001 From: Bob Moore Date: Fri, 2 Feb 2007 19:48:20 +0300 Subject: [PATCH] --- yaml --- r: 46372 b: refs/heads/master c: 13b572a35ed904ae1e162f8ee89ca7fd6992b44c h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/acpi/dispatcher/dswload.c | 15 ++++++++++++--- trunk/drivers/acpi/parser/psparse.c | 5 +++++ 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 5ec05640645b..109e3ba69706 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ea5d8ebcbb7ca3bcb35a2133805571295f3f06e8 +refs/heads/master: 13b572a35ed904ae1e162f8ee89ca7fd6992b44c diff --git a/trunk/drivers/acpi/dispatcher/dswload.c b/trunk/drivers/acpi/dispatcher/dswload.c index d60d0625b11c..565d4557d0e0 100644 --- a/trunk/drivers/acpi/dispatcher/dswload.c +++ b/trunk/drivers/acpi/dispatcher/dswload.c @@ -547,6 +547,7 @@ acpi_ds_load2_begin_op(struct acpi_walk_state *walk_state, acpi_status status; acpi_object_type object_type; char *buffer_ptr; + u32 flags; ACPI_FUNCTION_TRACE(ds_load2_begin_op); @@ -752,12 +753,20 @@ acpi_ds_load2_begin_op(struct acpi_walk_state *walk_state, break; } - /* Add new entry into namespace */ + flags = ACPI_NS_NO_UPSEARCH; + if (walk_state->pass_number == 3) { + + /* Execution mode, node cannot already exist */ + + flags |= ACPI_NS_ERROR_IF_FOUND; + } + + /* Add new entry or lookup existing entry */ status = acpi_ns_lookup(walk_state->scope_info, buffer_ptr, - object_type, ACPI_IMODE_LOAD_PASS2, - ACPI_NS_NO_UPSEARCH, walk_state, &(node)); + object_type, ACPI_IMODE_LOAD_PASS2, flags, + walk_state, &node); break; } diff --git a/trunk/drivers/acpi/parser/psparse.c b/trunk/drivers/acpi/parser/psparse.c index a02aa62fe1e5..6e875cea17a9 100644 --- a/trunk/drivers/acpi/parser/psparse.c +++ b/trunk/drivers/acpi/parser/psparse.c @@ -540,6 +540,11 @@ acpi_status acpi_ps_parse_aml(struct acpi_walk_state *walk_state) if ((status == AE_ALREADY_EXISTS) && (!walk_state->method_desc->method.mutex)) { + ACPI_INFO((AE_INFO, + "Marking method %4.4s as Serialized", + walk_state->method_node->name. + ascii)); + /* * Method tried to create an object twice. The probable cause is * that the method cannot handle reentrancy.