cxl/region: Deal with numa nodes not enumerated by SRAT
[linux-2.6-microblaze.git] / drivers / acpi / numa / srat.c
index 0214518..e45e649 100644 (file)
@@ -29,6 +29,8 @@ static int node_to_pxm_map[MAX_NUMNODES]
 unsigned char acpi_srat_revision __initdata;
 static int acpi_numa __initdata;
 
+static int last_real_pxm;
+
 void __init disable_srat(void)
 {
        acpi_numa = -1;
@@ -536,6 +538,7 @@ int __init acpi_numa_init(void)
                if (node_to_pxm_map[i] > fake_pxm)
                        fake_pxm = node_to_pxm_map[i];
        }
+       last_real_pxm = fake_pxm;
        fake_pxm++;
        acpi_table_parse_cedt(ACPI_CEDT_TYPE_CFMWS, acpi_parse_cfmws,
                              &fake_pxm);
@@ -547,6 +550,14 @@ int __init acpi_numa_init(void)
        return 0;
 }
 
+bool acpi_node_backed_by_real_pxm(int nid)
+{
+       int pxm = node_to_pxm(nid);
+
+       return pxm <= last_real_pxm;
+}
+EXPORT_SYMBOL_GPL(acpi_node_backed_by_real_pxm);
+
 static int acpi_get_pxm(acpi_handle h)
 {
        unsigned long long pxm;