提交 3d81b236 编写于 作者: B Bob Moore 提交者: Len Brown

ACPICA: Fix unalignment in acpi_ut_repair_name

Update interface to acpi_ut_repair_name() to avoid
alignment issues on IA64
Signed-off-by: NAlexey Starikovskiy <alexey.y.starikovskiy@intel.com>
Signed-off-by: NLen Brown <len.brown@intel.com>
上级 c5a71569
...@@ -205,7 +205,7 @@ acpi_ns_dump_one_object(acpi_handle obj_handle, ...@@ -205,7 +205,7 @@ acpi_ns_dump_one_object(acpi_handle obj_handle,
if (!acpi_ut_valid_acpi_name(this_node->name.integer)) { if (!acpi_ut_valid_acpi_name(this_node->name.integer)) {
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", ACPI_WARNING((AE_INFO, "Invalid ACPI Name %08X",
this_node->name.integer)); this_node->name.integer));
......
...@@ -321,7 +321,8 @@ acpi_ns_search_and_enter(u32 target_name, ...@@ -321,7 +321,8 @@ acpi_ns_search_and_enter(u32 target_name,
* even though there are a few bad names. * even though there are a few bad names.
*/ */
if (!acpi_ut_valid_acpi_name(target_name)) { 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 */ /* Report warning only if in strict mode or debug mode */
......
...@@ -566,7 +566,7 @@ char *acpi_ut_get_node_name(void *object) ...@@ -566,7 +566,7 @@ char *acpi_ut_get_node_name(void *object)
/* Name must be a valid ACPI name */ /* Name must be a valid ACPI name */
if (!acpi_ut_valid_acpi_name(node->name.integer)) { 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 */ /* Return the name */
......
...@@ -582,26 +582,25 @@ u8 acpi_ut_valid_acpi_name(u32 name) ...@@ -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; acpi_native_uint i;
char new_name[ACPI_NAME_SIZE];
for (i = 0; i < ACPI_NAME_SIZE; i++) { 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 * Replace a bad character with something printable, yet technically
* still invalid. This prevents any collisions with existing "good" * still invalid. This prevents any collisions with existing "good"
* names in the namespace. * 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] = '*'; new_name[i] = '*';
} }
} }
return (*ACPI_CAST_PTR(u32, new_name)); return (*(u32 *) new_name);
} }
/******************************************************************************* /*******************************************************************************
......
...@@ -470,7 +470,7 @@ void acpi_ut_print_string(char *string, u8 max_length); ...@@ -470,7 +470,7 @@ void acpi_ut_print_string(char *string, u8 max_length);
u8 acpi_ut_valid_acpi_name(u32 name); 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); u8 acpi_ut_valid_acpi_char(char character, acpi_native_uint position);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册