mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
x86/boot: Improve paging mode diagnostics in create_dom0()
I was presented with this: (XEN) NX (Execute Disable) protection active (XEN) d0 has maximum 416 PIRQs (XEN) (XEN) **************************************** (XEN) Panic on CPU 0: (XEN) Error creating d0: -95 (XEN) **************************************** which is less than helpful. It turns out to be the -EOPNOTSUPP from shadow_domain_init(). The real bug here is create_dom0() unconditionally assuming the presence of SHADOW_PAGING. Rework it to panic() rather than choosing a dom0_cfg which is guaranteed to fail. This results in: (XEN) NX (Execute Disable) protection active (XEN) (XEN) **************************************** (XEN) Panic on CPU 0: (XEN) Neither HAP nor Shadow available for PVH domain (XEN) **************************************** which is rather more helpful. Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> Reviewed-by: Jan Beulich <jbeulich@suse.com>
This commit is contained in:
1 parent
da21488aed
commit
2654ff974a
1 file changed
+6
-3
@@ -1033,9 +1033,12 @@ static struct domain *__init create_dom0(struct boot_info *bi)
|
||||
|
||||
if ( opt_dom0_pvh )
|
||||
{
|
||||
dom0_cfg.flags |= (XEN_DOMCTL_CDF_hvm |
|
||||
((hvm_hap_supported() && !opt_dom0_shadow) ?
|
||||
XEN_DOMCTL_CDF_hap : 0));
|
||||
dom0_cfg.flags |= XEN_DOMCTL_CDF_hvm;
|
||||
|
||||
if ( hvm_hap_supported() && !opt_dom0_shadow )
|
||||
dom0_cfg.flags |= XEN_DOMCTL_CDF_hap;
|
||||
else if ( !IS_ENABLED(CONFIG_SHADOW_PAGING) )
|
||||
panic("Neither HAP nor Shadow available for PVH domain\n");
|
||||
|
||||
dom0_cfg.arch.emulation_flags |=
|
||||
XEN_X86_EMU_LAPIC | XEN_X86_EMU_IOAPIC | XEN_X86_EMU_VPCI;
|
||||
|
||||