[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v4 08/13] x86/hyperlaunch: locate dom0 initrd with hyperlaunch
On Fri Apr 18, 2025 at 11:58 PM BST, dmkhn wrote: > On Thu, Apr 17, 2025 at 01:48:30PM +0100, Alejandro Vallejo wrote: >> From: "Daniel P. Smith" <dpsmith@xxxxxxxxxxxxxxxxxxxx> >> >> Look for a subnode of type `multiboot,ramdisk` within a domain node and >> parse via the fdt_read_multiboot_module() helper. After a successful >> helper call, the module index is returned and the module is guaranteed >> to be in the module list. >> >> Fix unused typo in adjacent comment. >> >> Signed-off-by: Daniel P. Smith <dpsmith@xxxxxxxxxxxxxxxxxxxx> >> Signed-off-by: Jason Andryuk <jason.andryuk@xxxxxxx> >> Signed-off-by: Alejandro Vallejo <agarciav@xxxxxxx> >> --- >> v4: >> * s/XENLOG_ERR/XENLOG_WARNING/ on duplicate ramdisk. >> * Removed stray ")" in printk >> * s/else if/if/ (because of continue) >> * Removed trailing continue >> --- >> xen/arch/x86/setup.c | 4 ++-- >> xen/common/domain-builder/fdt.c | 25 +++++++++++++++++++++++++ >> 2 files changed, 27 insertions(+), 2 deletions(-) >> >> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c >> index 4cae13163b..76ceb5221f 100644 >> --- a/xen/arch/x86/setup.c >> +++ b/xen/arch/x86/setup.c >> @@ -2150,11 +2150,11 @@ void asmlinkage __init noreturn __start_xen(void) >> * At this point all capabilities that consume boot modules should have >> * claimed their boot modules. Find the first unclaimed boot module and >> * claim it as the initrd ramdisk. Do a second search to see if there >> are >> - * any remaining unclaimed boot modules, and report them as unusued >> initrd >> + * any remaining unclaimed boot modules, and report them as unused >> initrd >> * candidates. >> */ >> initrdidx = first_boot_module_index(bi, BOOTMOD_UNKNOWN); >> - if ( initrdidx < MAX_NR_BOOTMODS ) >> + if ( !bi->hyperlaunch_enabled && initrdidx < MAX_NR_BOOTMODS ) >> { >> bi->mods[initrdidx].type = BOOTMOD_RAMDISK; >> bi->domains[0].module = &bi->mods[initrdidx]; >> diff --git a/xen/common/domain-builder/fdt.c >> b/xen/common/domain-builder/fdt.c >> index 50fde2d007..c0f526a4ce 100644 >> --- a/xen/common/domain-builder/fdt.c >> +++ b/xen/common/domain-builder/fdt.c >> @@ -216,6 +216,31 @@ static int __init process_domain_node( >> bd->kernel->fdt_cmdline = fdt_get_prop_offset( >> fdt, node, "bootargs", &bd->kernel->cmdline_pa); >> } >> + else if ( !fdt_node_check_compatible(fdt, node, >> "multiboot,ramdisk") ) >> + { >> + int idx; >> + >> + if ( bd->module ) >> + { >> + printk(XENLOG_WARNING >> + "Duplicate module for domain %s\n", name); >> + continue; >> + } >> + >> + idx = fdt_read_multiboot_module(fdt, node, address_cells, >> + size_cells, bi); >> + if ( idx < 0 ) >> + { >> + printk(XENLOG_ERR >> + " failed processing module for domain %s\n", >> + name); >> + return -EINVAL; > > Propagate fdt_read_multiboot_module()'s error to the caller, i.e.: > > return idx; Sure Cheers, Alejandro
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |