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 <iyamahata@crusoe.ai>
This commit is contained in:
Isaku Yamahata
2026-07-19 22:44:20 -07:00
committed by Rob Bradford
parent 331b2bba53
commit 1260d99e1e

View File

@@ -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