diff mbox

[for-4.10,1/3] libxc: panic when trying to create a PVH guest without kernel support

Message ID 20171006135201.97534-2-roger.pau@citrix.com (mailing list archive)
State New, archived
Headers show

Commit Message

Roger Pau Monné Oct. 6, 2017, 1:51 p.m. UTC
Previously when trying to boot a PV capable but not PVH capable kernel
inside of a PVH container xc_dom_guest_type would succeed and return a
PV guest type, which would lead to failures later on in the build
process.

Instead provide a clear error message when trying to create a PVH
guest using a kernel that doesn't support PVH.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Cc: Ian Jackson <ian.jackson@eu.citrix.com>
Cc: Wei Liu <wei.liu2@citrix.com>
---
 tools/libxc/xc_dom_elfloader.c | 7 +++++++
 1 file changed, 7 insertions(+)

Comments

Ian Jackson Oct. 6, 2017, 2:38 p.m. UTC | #1
Roger Pau Monne writes ("[PATCH for-4.10 1/3] libxc: panic when trying to create a PVH guest without kernel support"):
> Previously when trying to boot a PV capable but not PVH capable kernel
> inside of a PVH container xc_dom_guest_type would succeed and return a
> PV guest type, which would lead to failures later on in the build
> process.
> 
> Instead provide a clear error message when trying to create a PVH
> guest using a kernel that doesn't support PVH.

All three:

Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
diff mbox

Patch

diff --git a/tools/libxc/xc_dom_elfloader.c b/tools/libxc/xc_dom_elfloader.c
index 62d421a5e3..568d7f370c 100644
--- a/tools/libxc/xc_dom_elfloader.c
+++ b/tools/libxc/xc_dom_elfloader.c
@@ -59,6 +59,13 @@  static char *xc_dom_guest_type(struct xc_dom_image *dom,
     if ( dom->container_type == XC_DOM_HVM_CONTAINER &&
          dom->parms.phys_entry != UNSET_ADDR32 )
         return "hvm-3.0-x86_32";
+    if ( dom->container_type == XC_DOM_HVM_CONTAINER )
+    {
+        xc_dom_panic(dom->xch, XC_INVALID_KERNEL,
+                     "%s: image not capable of booting inside a HVM container",
+                     __FUNCTION__);
+        return "xen-3.0-unknown";
+    }
 
     switch ( machine )
     {