[PATCH] ACPI: NUMA: debug invalid unused PXM value for CFMWs

From: Yuquan Wang
Date: Mon Mar 10 2025 - 05:40:00 EST


The absence of SRAT would cause the fake_pxm to be -1 and increment
to 0, then send to acpi_parse_cfmws(). If there exists CXL memory
ranges that are defined in the CFMWS and not already defined in the
SRAT, the new node (node0) for the CXL memory would be invalid, as
node0 is already in "used".

Signed-off-by: Yuquan Wang <wangyuquan1236@xxxxxxxxxxxxxx>
---
drivers/acpi/numa/srat.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/drivers/acpi/numa/srat.c b/drivers/acpi/numa/srat.c
index 00ac0d7bb8c9..eb8628e217fa 100644
--- a/drivers/acpi/numa/srat.c
+++ b/drivers/acpi/numa/srat.c
@@ -646,6 +646,9 @@ int __init acpi_numa_init(void)
if (node_to_pxm_map[i] > fake_pxm)
fake_pxm = node_to_pxm_map[i];
}
+ if (fake_pxm == PXM_INVAL)
+ pr_warn("Failed to find the next unused PXM value for CFMWs\n");
+
last_real_pxm = fake_pxm;
fake_pxm++;
acpi_table_parse_cedt(ACPI_CEDT_TYPE_CFMWS, acpi_parse_cfmws,
--
2.34.1