This was checking presence of the wrong (old) ELF note. I don't really understand how this failed consistently only for one of the xen-boot tests... Signed-off-by: Jan Beulich --- a/xen/arch/ia64/xen/domain.c +++ b/xen/arch/ia64/xen/domain.c @@ -2164,7 +2164,7 @@ int __init construct_dom0(struct domain return -1; } - if (parms.elf_notes[XEN_ELFNOTE_FEATURES].type != XEN_ENT_NONE && + if (parms.elf_notes[XEN_ELFNOTE_SUPPORTED_FEATURES].type != XEN_ENT_NONE && !test_bit(XENFEAT_dom0, parms.f_supported)) { printk("Kernel does not support Dom0 operation\n"); --- a/xen/arch/x86/domain_build.c +++ b/xen/arch/x86/domain_build.c @@ -415,7 +415,7 @@ int __init construct_dom0( return -EINVAL; } - if ( parms.elf_notes[XEN_ELFNOTE_FEATURES].type != XEN_ENT_NONE && + if ( parms.elf_notes[XEN_ELFNOTE_SUPPORTED_FEATURES].type != XEN_ENT_NONE && !test_bit(XENFEAT_dom0, parms.f_supported) ) { printk("Kernel does not support Dom0 operation\n");