x86/pv: provide more helpful error when CONFIG_PV32 is absent

Currently, when booting a 32bit dom0 kernel, the message isn't very
helpful:

  (XEN)  Xen  kernel: 64-bit, lsb
  (XEN)  Dom0 kernel: 32-bit, PAE, lsb, paddr 0x100000 -> 0x112000
  (XEN) Mismatch between Xen and DOM0 kernel
  (XEN)
  (XEN) ****************************************
  (XEN) Panic on CPU 0:
  (XEN) Could not construct domain 0
  (XEN) ****************************************

With this adjustment, it now looks like this:

  (XEN)  Xen  kernel: 64-bit, lsb
  (XEN) Found 32-bit PV kernel, but CONFIG_PV32 missing
  (XEN)
  (XEN) ****************************************
  (XEN) Panic on CPU 0:
  (XEN) Could not construct domain 0
  (XEN) ****************************************

Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Jane Malalane <jane.malalane@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
This commit is contained in:
Jane Malalane authored and Jan Beulich committed 2021-08-16 15:16:20 +02:00
1 parent c53aa9e655
commit 2e5512d1ff
1 file changed
+5 -2
+5 -2
View File
@@ -362,9 +362,9 @@ int __init dom0_construct_pv(struct domain *d,
compatible = false;
machine = elf_uval(&elf, elf.ehdr, e_machine);
#ifdef CONFIG_PV32
if ( elf_32bit(&elf) )
{
#ifdef CONFIG_PV32
if ( parms.pae == XEN_PAE_BIMODAL )
parms.pae = XEN_PAE_EXTCR3;
if ( parms.pae && machine == EM_386 )
@@ -377,8 +377,11 @@ int __init dom0_construct_pv(struct domain *d,
compatible = true;
}
}
#else
printk("Found 32-bit PV kernel, but CONFIG_PV32 missing\n");
return -EOPNOTSUPP;
#endif
}
compat = is_pv_32bit_domain(d);
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.