@@ -167,6 +167,19 @@ acpi_table_print_srat_entry(struct acpi_subtable_header *header)
167167 }
168168 }
169169 break ;
170+
171+ case ACPI_SRAT_TYPE_RINTC_AFFINITY :
172+ {
173+ struct acpi_srat_rintc_affinity * p =
174+ (struct acpi_srat_rintc_affinity * )header ;
175+ pr_debug ("SRAT Processor (acpi id[0x%04x]) in proximity domain %d %s\n" ,
176+ p -> acpi_processor_uid ,
177+ p -> proximity_domain ,
178+ (p -> flags & ACPI_SRAT_RINTC_ENABLED ) ?
179+ "enabled" : "disabled" );
180+ }
181+ break ;
182+
170183 default :
171184 pr_warn ("Found unsupported SRAT entry (type = 0x%x)\n" ,
172185 header -> type );
@@ -450,6 +463,21 @@ acpi_parse_gi_affinity(union acpi_subtable_headers *header,
450463}
451464#endif /* defined(CONFIG_X86) || defined (CONFIG_ARM64) */
452465
466+ static int __init
467+ acpi_parse_rintc_affinity (union acpi_subtable_headers * header ,
468+ const unsigned long end )
469+ {
470+ struct acpi_srat_rintc_affinity * rintc_affinity ;
471+
472+ rintc_affinity = (struct acpi_srat_rintc_affinity * )header ;
473+ acpi_table_print_srat_entry (& header -> common );
474+
475+ /* let architecture-dependent part to do it */
476+ acpi_numa_rintc_affinity_init (rintc_affinity );
477+
478+ return 0 ;
479+ }
480+
453481static int __init acpi_parse_srat (struct acpi_table_header * table )
454482{
455483 struct acpi_table_srat * srat = (struct acpi_table_srat * )table ;
@@ -485,7 +513,7 @@ int __init acpi_numa_init(void)
485513
486514 /* SRAT: System Resource Affinity Table */
487515 if (!acpi_table_parse (ACPI_SIG_SRAT , acpi_parse_srat )) {
488- struct acpi_subtable_proc srat_proc [4 ];
516+ struct acpi_subtable_proc srat_proc [5 ];
489517
490518 memset (srat_proc , 0 , sizeof (srat_proc ));
491519 srat_proc [0 ].id = ACPI_SRAT_TYPE_CPU_AFFINITY ;
@@ -496,6 +524,8 @@ int __init acpi_numa_init(void)
496524 srat_proc [2 ].handler = acpi_parse_gicc_affinity ;
497525 srat_proc [3 ].id = ACPI_SRAT_TYPE_GENERIC_AFFINITY ;
498526 srat_proc [3 ].handler = acpi_parse_gi_affinity ;
527+ srat_proc [4 ].id = ACPI_SRAT_TYPE_RINTC_AFFINITY ;
528+ srat_proc [4 ].handler = acpi_parse_rintc_affinity ;
499529
500530 acpi_table_parse_entries_array (ACPI_SIG_SRAT ,
501531 sizeof (struct acpi_table_srat ),
0 commit comments