mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	ACPI: configfs: Resolve objects on host-directed table loads
If an ACPI SSDT overlay is loaded after built-in tables have been loaded e.g. via configfs or efivar_ssdt_load() it is necessary to rewalk the namespace to resolve references. Without this, relative and absolute paths like ^PCI0.SBUS or \_SB.PCI0.SBUS are not resolved correctly. Make configfs loads use the same method as efivar_ssdt_load(). Signed-off-by: Nikolaus Voss <nikolaus.voss@loewensteinmedical.de> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
		
							parent
							
								
									c78fea61f0
								
							
						
					
					
						commit
						d06c47e3dd
					
				
					 2 changed files with 12 additions and 5 deletions
				
			
		| 
						 | 
				
			
			@ -56,11 +56,7 @@ static ssize_t acpi_table_aml_write(struct config_item *cfg,
 | 
			
		|||
	if (!table->header)
 | 
			
		||||
		return -ENOMEM;
 | 
			
		||||
 | 
			
		||||
	ACPI_INFO(("Host-directed Dynamic ACPI Table Load:"));
 | 
			
		||||
	ret = acpi_tb_install_and_load_table(
 | 
			
		||||
			ACPI_PTR_TO_PHYSADDR(table->header),
 | 
			
		||||
			ACPI_TABLE_ORIGIN_EXTERNAL_VIRTUAL, FALSE,
 | 
			
		||||
			&table->index);
 | 
			
		||||
	ret = acpi_load_table(table->header);
 | 
			
		||||
	if (ret) {
 | 
			
		||||
		kfree(table->header);
 | 
			
		||||
		table->header = NULL;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -297,6 +297,17 @@ acpi_status acpi_load_table(struct acpi_table_header *table)
 | 
			
		|||
	status = acpi_tb_install_and_load_table(ACPI_PTR_TO_PHYSADDR(table),
 | 
			
		||||
						ACPI_TABLE_ORIGIN_EXTERNAL_VIRTUAL,
 | 
			
		||||
						FALSE, &table_index);
 | 
			
		||||
 | 
			
		||||
	if (ACPI_SUCCESS(status)) {
 | 
			
		||||
		/* Complete the initialization/resolution of package objects */
 | 
			
		||||
 | 
			
		||||
		status = acpi_ns_walk_namespace(ACPI_TYPE_PACKAGE,
 | 
			
		||||
						ACPI_ROOT_OBJECT,
 | 
			
		||||
						ACPI_UINT32_MAX, 0,
 | 
			
		||||
						acpi_ns_init_one_package,
 | 
			
		||||
						NULL, NULL, NULL);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return_ACPI_STATUS(status);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue