From 1260d99e1eb9306108be86881625c3df844b733d Mon Sep 17 00:00:00 2001 From: Isaku Yamahata Date: Sun, 19 Jul 2026 22:44:20 -0700 Subject: [PATCH] arch: Fix duplicate l3-cache FDT node names for multi-package guests create_cpu_nodes() emits one shared-L3 cache node per package when the host reports a shared L3, but names every node with the constant "l3-cache0". For a guest topology with packages >= 2 the generated device tree carries the same name siblings. Fixes: 5857d4851 Assisted-by: Claude:Opus-4.8 (1M context) Signed-off-by: Isaku Yamahata --- arch/src/aarch64/fdt.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/src/aarch64/fdt.rs b/arch/src/aarch64/fdt.rs index 1d4a63308..887d9edfe 100644 --- a/arch/src/aarch64/fdt.rs +++ b/arch/src/aarch64/fdt.rs @@ -285,8 +285,8 @@ fn create_cpu_nodes( if cache_exist && l3_cache_size != 0 && !l2_cache_shared && l3_cache_shared { let mut i: u32 = 0; while i < packages.into() { - let l3_cache_name = "l3-cache0"; - let l3_cache_node = fdt.begin_node(l3_cache_name)?; + let l3_cache_name = format!("l3-cache{i}"); + let l3_cache_node = fdt.begin_node(&l3_cache_name)?; // ARM L3 cache is generally shared within the package (socket), so the // L3 cache node pointed to by the CPU in the package has the same L3 // cache PHANDLE. The L3 cache phandle must start from the largest L2