diff options
Diffstat (limited to 'drivers/acpi/acpica/nsdump.c')
| -rw-r--r-- | drivers/acpi/acpica/nsdump.c | 17 | 
1 files changed, 16 insertions, 1 deletions
diff --git a/drivers/acpi/acpica/nsdump.c b/drivers/acpi/acpica/nsdump.c index a54dc39e304..b683cc2ff9d 100644 --- a/drivers/acpi/acpica/nsdump.c +++ b/drivers/acpi/acpica/nsdump.c @@ -5,7 +5,7 @@   *****************************************************************************/  /* - * Copyright (C) 2000 - 2010, Intel Corp. + * Copyright (C) 2000 - 2011, Intel Corp.   * All rights reserved.   *   * Redistribution and use in source and binary forms, with or without @@ -624,9 +624,22 @@ acpi_ns_dump_objects(acpi_object_type type,  		     acpi_owner_id owner_id, acpi_handle start_handle)  {  	struct acpi_walk_info info; +	acpi_status status;  	ACPI_FUNCTION_ENTRY(); +	/* +	 * Just lock the entire namespace for the duration of the dump. +	 * We don't want any changes to the namespace during this time, +	 * especially the temporary nodes since we are going to display +	 * them also. +	 */ +	status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE); +	if (ACPI_FAILURE(status)) { +		acpi_os_printf("Could not acquire namespace mutex\n"); +		return; +	} +  	info.debug_level = ACPI_LV_TABLES;  	info.owner_id = owner_id;  	info.display_type = display_type; @@ -636,6 +649,8 @@ acpi_ns_dump_objects(acpi_object_type type,  				     ACPI_NS_WALK_TEMP_NODES,  				     acpi_ns_dump_one_object, NULL,  				     (void *)&info, NULL); + +	(void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);  }  #endif				/* ACPI_FUTURE_USAGE */  |