--- linux-2.4.0-prerelease/drivers/acpi/namespace/nsxfobj.c Fri Dec 29 14:07:21 2000 +++ linux/drivers/acpi/namespace/nsxfobj.c Mon Jan 1 01:37:10 2001 @@ -578,15 +578,13 @@ info = context; acpi_cm_acquire_mutex (ACPI_MTX_NAMESPACE); - node = acpi_ns_convert_handle_to_entry (obj_handle); + acpi_cm_release_mutex (ACPI_MTX_NAMESPACE); + if (!node) { - acpi_cm_release_mutex (ACPI_MTX_NAMESPACE); return (AE_BAD_PARAMETER); } - acpi_cm_release_mutex (ACPI_MTX_NAMESPACE); - /* * Run _STA to determine if device is present */ @@ -694,4 +692,4 @@ acpi_cm_release_mutex (ACPI_MTX_NAMESPACE); return (status); -} \ No newline at end of file +} --- linux-2.4.0-prerelease/drivers/acpi/namespace/nseval.c Fri Dec 29 14:07:21 2000 +++ linux/drivers/acpi/namespace/nseval.c Mon Jan 1 01:37:10 2001 @@ -253,8 +253,8 @@ node = acpi_ns_convert_handle_to_entry (handle); if (!node) { - status = AE_BAD_PARAMETER; - goto unlock_and_exit; + acpi_cm_release_mutex (ACPI_MTX_NAMESPACE); + return (AE_BAD_PARAMETER); } @@ -316,12 +316,6 @@ * so we just return */ return (status); - - -unlock_and_exit: - - acpi_cm_release_mutex (ACPI_MTX_NAMESPACE); - return (status); } @@ -357,10 +351,6 @@ /* Verify that there is a method associated with this object */ obj_desc = acpi_ns_get_attached_object ((ACPI_HANDLE) method_node); - if (!obj_desc) { - return (AE_ERROR); - } - /* * Unlock the namespace before execution. This allows namespace access @@ -371,6 +361,10 @@ */ acpi_cm_release_mutex (ACPI_MTX_NAMESPACE); + + if (!obj_desc) { + return (AE_ERROR); + } /* * Excecute the method via the interpreter