Commit 6cf7fb5a authored by Rafael J. Wysocki's avatar Rafael J. Wysocki
Browse files

Revert "ACPICA: Update table load object initialization"



Revert commit c522ad06 ("ACPICA: Update table load object
initialization") as it causes systems to hang on attempts to load
OEM ACPI tables.

Reported-by: default avatarThomas Gleixner <tglx@linutronix.de>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 4b470452
Loading
Loading
Loading
Loading
+10 −6
Original line number Diff line number Diff line
@@ -174,9 +174,12 @@ acpi_ex_load_table_op(struct acpi_walk_state *walk_state,
		return_ACPI_STATUS(status);
	}

	/* Complete the initialization/resolution of new objects */
	/* Complete the initialization/resolution of package objects */

	acpi_ns_initialize_objects();
	status = acpi_ns_walk_namespace(ACPI_TYPE_PACKAGE, ACPI_ROOT_OBJECT,
					ACPI_UINT32_MAX, 0,
					acpi_ns_init_one_package, NULL, NULL,
					NULL);

	/* Parameter Data (optional) */

@@ -434,11 +437,12 @@ acpi_ex_load_op(union acpi_operand_object *obj_desc,
		return_ACPI_STATUS(status);
	}

	/* Complete the initialization/resolution of new objects */
	/* Complete the initialization/resolution of package objects */

	acpi_ex_exit_interpreter();
	acpi_ns_initialize_objects();
	acpi_ex_enter_interpreter();
	status = acpi_ns_walk_namespace(ACPI_TYPE_PACKAGE, ACPI_ROOT_OBJECT,
					ACPI_UINT32_MAX, 0,
					acpi_ns_init_one_package, NULL, NULL,
					NULL);

	/* Store the ddb_handle into the Target operand */

+7 −3
Original line number Diff line number Diff line
@@ -297,11 +297,15 @@ 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 new objects */
	if (ACPI_SUCCESS(status)) {
		/* Complete the initialization/resolution of package objects */

		acpi_ns_initialize_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);