On Thu, Mar 07, 2024 at 04:47:55PM +0800, Haibo Xu wrote: > Add RINTC affinity structure handler during parsing SRAT table. > > Signed-off-by: Haibo Xu <haibo1.xu@xxxxxxxxx> > --- > drivers/acpi/numa/srat.c | 32 +++++++++++++++++++++++++++++++- > 1 file changed, 31 insertions(+), 1 deletion(-) > > diff --git a/drivers/acpi/numa/srat.c b/drivers/acpi/numa/srat.c > index 0214518fc582..1946431c0eef 100644 > --- a/drivers/acpi/numa/srat.c > +++ b/drivers/acpi/numa/srat.c > @@ -165,6 +165,19 @@ acpi_table_print_srat_entry(struct acpi_subtable_header *header) > } > } > break; > + > + case ACPI_SRAT_TYPE_RINTC_AFFINITY: > + { > + struct acpi_srat_rintc_affinity *p = > + (struct acpi_srat_rintc_affinity *)header; > + pr_debug("SRAT Processor (acpi id[0x%04x]) in proximity domain %d %s\n", > + p->acpi_processor_uid, > + p->proximity_domain, > + (p->flags & ACPI_SRAT_RINTC_ENABLED) ? > + "enabled" : "disabled"); > + } > + break; > + > default: > pr_warn("Found unsupported SRAT entry (type = 0x%x)\n", > header->type); > @@ -448,6 +461,21 @@ acpi_parse_gi_affinity(union acpi_subtable_headers *header, > } > #endif /* defined(CONFIG_X86) || defined (CONFIG_ARM64) */ > > +static int __init > +acpi_parse_rintc_affinity(union acpi_subtable_headers *header, > + const unsigned long end) > +{ > + struct acpi_srat_rintc_affinity *rintc_affinity; > + > + rintc_affinity = (struct acpi_srat_rintc_affinity *)header; > + acpi_table_print_srat_entry(&header->common); > + > + /* let architecture-dependent part to do it */ > + acpi_numa_rintc_affinity_init(rintc_affinity); > + > + return 0; > +} > + > static int __initdata parsed_numa_memblks; > > static int __init > @@ -501,7 +529,7 @@ int __init acpi_numa_init(void) > > /* SRAT: System Resource Affinity Table */ > if (!acpi_table_parse(ACPI_SIG_SRAT, acpi_parse_srat)) { > - struct acpi_subtable_proc srat_proc[4]; > + struct acpi_subtable_proc srat_proc[5]; > > memset(srat_proc, 0, sizeof(srat_proc)); > srat_proc[0].id = ACPI_SRAT_TYPE_CPU_AFFINITY; > @@ -512,6 +540,8 @@ int __init acpi_numa_init(void) > srat_proc[2].handler = acpi_parse_gicc_affinity; > srat_proc[3].id = ACPI_SRAT_TYPE_GENERIC_AFFINITY; > srat_proc[3].handler = acpi_parse_gi_affinity; > + srat_proc[4].id = ACPI_SRAT_TYPE_RINTC_AFFINITY; > + srat_proc[4].handler = acpi_parse_rintc_affinity; > > acpi_table_parse_entries_array(ACPI_SIG_SRAT, > sizeof(struct acpi_table_srat), LGTM. Thanks! Reviewed-by: Sunil V L <sunilvl@xxxxxxxxxxxxxxxx>