diff options
author | Len Brown <len.brown@intel.com> | 2009-09-19 09:45:22 +0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2009-09-19 09:45:22 +0400 |
commit | 985f38781d19101aba121df423f92c87b208c6df (patch) | |
tree | 21b10413b6e24c0eaf5c3b2432e936749a672644 /drivers/acpi/acpica/dsmethod.c | |
parent | d093d70a81b08673d1577ad73419998f02be9d29 (diff) | |
parent | c9766237afa92e8d7f27bbcd4964f1b43fa0bce8 (diff) | |
download | linux-985f38781d19101aba121df423f92c87b208c6df.tar.xz |
Merge branch 'acpica' into release
Diffstat (limited to 'drivers/acpi/acpica/dsmethod.c')
-rw-r--r-- | drivers/acpi/acpica/dsmethod.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/drivers/acpi/acpica/dsmethod.c b/drivers/acpi/acpica/dsmethod.c index 14b8b8ed8023..567a4899a018 100644 --- a/drivers/acpi/acpica/dsmethod.c +++ b/drivers/acpi/acpica/dsmethod.c @@ -578,10 +578,15 @@ acpi_ds_terminate_control_method(union acpi_operand_object *method_desc, } /* - * Delete any namespace objects created anywhere within - * the namespace by the execution of this method + * Delete any namespace objects created anywhere within the + * namespace by the execution of this method. Unless this method + * is a module-level executable code method, in which case we + * want make the objects permanent. */ - acpi_ns_delete_namespace_by_owner(method_desc->method.owner_id); + if (!(method_desc->method.flags & AOPOBJ_MODULE_LEVEL)) { + acpi_ns_delete_namespace_by_owner(method_desc->method. + owner_id); + } } /* Decrement the thread count on the method */ @@ -622,7 +627,9 @@ acpi_ds_terminate_control_method(union acpi_operand_object *method_desc, /* No more threads, we can free the owner_id */ - acpi_ut_release_owner_id(&method_desc->method.owner_id); + if (!(method_desc->method.flags & AOPOBJ_MODULE_LEVEL)) { + acpi_ut_release_owner_id(&method_desc->method.owner_id); + } } return_VOID; |