Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3d81b236 authored by Bob Moore's avatar Bob Moore Committed by Len Brown
Browse files

ACPICA: Fix unalignment in acpi_ut_repair_name



Update interface to acpi_ut_repair_name() to avoid
alignment issues on IA64

Signed-off-by: default avatarAlexey Starikovskiy <alexey.y.starikovskiy@intel.com>
Signed-off-by: default avatarLen Brown <len.brown@intel.com>
parent c5a71569
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -205,7 +205,7 @@ acpi_ns_dump_one_object(acpi_handle obj_handle,

		if (!acpi_ut_valid_acpi_name(this_node->name.integer)) {
			this_node->name.integer =
			    acpi_ut_repair_name(this_node->name.integer);
			    acpi_ut_repair_name(this_node->name.ascii);

			ACPI_WARNING((AE_INFO, "Invalid ACPI Name %08X",
				      this_node->name.integer));
+2 −1
Original line number Diff line number Diff line
@@ -321,7 +321,8 @@ acpi_ns_search_and_enter(u32 target_name,
	 * even though there are a few bad names.
	 */
	if (!acpi_ut_valid_acpi_name(target_name)) {
		target_name = acpi_ut_repair_name(target_name);
		target_name =
		    acpi_ut_repair_name(ACPI_CAST_PTR(char, &target_name));

		/* Report warning only if in strict mode or debug mode */

+1 −1
Original line number Diff line number Diff line
@@ -566,7 +566,7 @@ char *acpi_ut_get_node_name(void *object)
	/* Name must be a valid ACPI name */

	if (!acpi_ut_valid_acpi_name(node->name.integer)) {
		node->name.integer = acpi_ut_repair_name(node->name.integer);
		node->name.integer = acpi_ut_repair_name(node->name.ascii);
	}

	/* Return the name */
+5 −6
Original line number Diff line number Diff line
@@ -582,26 +582,25 @@ u8 acpi_ut_valid_acpi_name(u32 name)
 *
 ******************************************************************************/

acpi_name acpi_ut_repair_name(acpi_name name)
acpi_name acpi_ut_repair_name(char *name)
{
	char *name_ptr = ACPI_CAST_PTR(char, &name);
	char new_name[ACPI_NAME_SIZE];
	acpi_native_uint i;
	char new_name[ACPI_NAME_SIZE];

	for (i = 0; i < ACPI_NAME_SIZE; i++) {
		new_name[i] = name_ptr[i];
		new_name[i] = name[i];

		/*
		 * Replace a bad character with something printable, yet technically
		 * still invalid. This prevents any collisions with existing "good"
		 * names in the namespace.
		 */
		if (!acpi_ut_valid_acpi_char(name_ptr[i], i)) {
		if (!acpi_ut_valid_acpi_char(name[i], i)) {
			new_name[i] = '*';
		}
	}

	return (*ACPI_CAST_PTR(u32, new_name));
	return (*(u32 *) new_name);
}

/*******************************************************************************
+1 −1
Original line number Diff line number Diff line
@@ -470,7 +470,7 @@ void acpi_ut_print_string(char *string, u8 max_length);

u8 acpi_ut_valid_acpi_name(u32 name);

acpi_name acpi_ut_repair_name(acpi_name name);
acpi_name acpi_ut_repair_name(char *name);

u8 acpi_ut_valid_acpi_char(char character, acpi_native_uint position);