obj_desc = acpi_ns_get_attached_object (info->node); if (!obj_desc) { 
info->obj_desc = acpi_ns_get_attached_object (info->node); if (!info->obj_desc) { 
acpi_ns_execute_control_method (	struct acpi_parameter_info      *info){	acpi_status                     status;	union acpi_operand_object       *obj_desc;	ACPI_FUNCTION_TRACE ("ns_execute_control_method");	/* Verify that there is a method associated with this object */	obj_desc = acpi_ns_get_attached_object (info->node);	if (!obj_desc) {		ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "No attached method object\n"));		(void) acpi_ut_release_mutex (ACPI_MTX_NAMESPACE);		return_ACPI_STATUS (AE_NULL_OBJECT);	}	ACPI_DUMP_PATHNAME (info->node, "Execute Method:",		ACPI_LV_INFO, _COMPONENT);	ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Method at AML address %p Length %X\n",		obj_desc->method.aml_start + 1, obj_desc->method.aml_length - 1));	/*	 * Unlock the namespace before execution.  This allows namespace access	 * via the external Acpi* interfaces while a method is being executed.	 * However, any namespace deletion must acquire both the namespace and	 * interpreter locks to ensure that no thread is using the portion of the	 * namespace that is being deleted.	 */	status = acpi_ut_release_mutex (ACPI_MTX_NAMESPACE);	if (ACPI_FAILURE (status)) {		return_ACPI_STATUS (status);	}	/*	 * Execute the method via the interpreter.  The interpreter is locked	 * here before calling into the AML parser	 */	status = acpi_ex_enter_interpreter ();	if (ACPI_FAILURE (status)) {		return_ACPI_STATUS (status);	}	status = acpi_psx_execute (info);	acpi_ex_exit_interpreter ();	return_ACPI_STATUS (status);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/0c9938cc75057c0fca1af55a55dcfc2842436695/nseval.c/clean/drivers/acpi/namespace/nseval.c