How about something like this:
--- a/drivers/acpi/pptt.c
+++ b/drivers/acpi/pptt.c
@@ -515,6 +515,8 @@ static int topology_get_acpi_cpu_tag(struct
acpi_table_header *table,
if (level == 0 || cpu_node->flags & ACPI_PPTT_ACPI_PROCESSOR_ID_VALID)
return cpu_node->acpi_processor_id;
+ if (level == PPTT_ABORT_PACKAGE)
+ pr_warn_once("ACPI Processor ID valid not set for physical
package node, will use node table offset as substitute for UID\n");
Hi Jeremy,
To clarify my other email there, since I can't seem to type clearly..
Just note that find_acpi_cpu_topology_hetero_id() is also using a
PPTT_ABORT_PACKAGE termination.
OK, so I may need to check the flag == ACPI_PPTT_PHYSICAL_PACKAGE also.
BTW, Is the value returned by find_acpi_cpu_topology_hetero_id() also
exposed to userspace some way? Or any other PPTT offsets?
return ACPI_PTR_DIFF(cpu_node, table);
}
pr_warn_once("PPTT table found, but unable to locate core %d
(%d)\n",
I'll validate Sudeep's suggestion to set the Processor ID valid flag and
appropriate processor id for the physical package cpu node with an
experimental firmware before sending any patch. There seems to be a bit
of doubt on your part regarding that.
Thanks,
John