Add generic port support for the parsing of HMAT locality sub-table. The attributes will be added to the third array member of the hmem_attrs in order to not mix with the existing memory attributes it only provides the locality attributes from initator to the generic port targets and is missing the rest of the data from the actual memory device. The actual memory attributes will be updated when a memory device is attached and the locality information is calculated end to end. Signed-off-by: Dave Jiang <dave.jiang@xxxxxxxxx> --- drivers/acpi/numa/hmat.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/acpi/numa/hmat.c b/drivers/acpi/numa/hmat.c index d11b4231ae92..ad0cf21700a1 100644 --- a/drivers/acpi/numa/hmat.c +++ b/drivers/acpi/numa/hmat.c @@ -60,6 +60,7 @@ struct target_cache { enum { NODE_ACCESS_CLASS_0 = 0, NODE_ACCESS_CLASS_1, + NODE_ACCESS_CLASS_GENPORT, NODE_ACCESS_CLASS_MAX, }; @@ -367,6 +368,12 @@ static __init int hmat_parse_locality(union acpi_subtable_headers *header, if (mem_hier == ACPI_HMAT_MEMORY) { target = find_mem_target(targs[targ]); if (target && target->processor_pxm == inits[init]) { + if (*(target->device_handle)) { + hmat_update_target_access(target, type, value, + NODE_ACCESS_CLASS_GENPORT); + continue; + } + hmat_update_target_access(target, type, value, NODE_ACCESS_CLASS_0); /* If the node has a CPU, update access 1 */