From ec0c241602dfc7ec0a4f39cf3633a326d3e3ecc3 Mon Sep 17 00:00:00 2001 From: Michal Orzel Date: Wed, 5 Aug 2026 14:11:24 +0200 Subject: [PATCH] xen/dt: reject "xen,static-mem" when CONFIG_STATIC_MEMORY is disabled process_domain_node() parses "xen,static-mem" regardless of CONFIG_STATIC_MEMORY. With the feature off, init_staticmem_pages() is a no-op stub, so boot carries on until construct_domU() reaches the ASSERT_UNREACHABLE() stubs of allocate_static_memory() / assign_static_memory_11(): a debug build trips the assertion, a production build gives the domain no memory at all. Bail out at parse time instead, like process_shm_node() already does for CONFIG_STATIC_SHM. Fixes: 41c031ff437b ("xen/arm: introduce domain on Static Allocation") Signed-off-by: Michal Orzel Acked-by: Bertrand Marquis [michal: adjust for code movement] (cherry picked from commit e888192d133eeec8a94275eaf4194117f198a7e2) --- xen/common/device-tree/bootfdt.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/xen/common/device-tree/bootfdt.c b/xen/common/device-tree/bootfdt.c index 9ce7699833..70d79cfc06 100644 --- a/xen/common/device-tree/bootfdt.c +++ b/xen/common/device-tree/bootfdt.c @@ -471,6 +471,12 @@ static int __init process_domain_node(const void *fdt, int node, /* No "xen,static-mem" present. */ return 0; + if ( !IS_ENABLED(CONFIG_STATIC_MEMORY) ) + { + printk("CONFIG_STATIC_MEMORY must be enabled for parsing xen,static-mem\n"); + return -EINVAL; + } + return device_tree_get_meminfo(fdt, node, "xen,static-mem", address_cells, size_cells, bootinfo_get_reserved_mem(), MEMBANK_STATIC_DOMAIN);