[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH for-4.10 1/3] libxc: panic when trying to create a PVH guest without kernel support
On Fri, Jan 19, 2018 at 06:11:00AM +0000, HW42 wrote: > Roger Pau Monne: > > 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@xxxxxxxxxx> > > --- > > Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> > > Cc: Wei Liu <wei.liu2@xxxxxxxxxx> > > --- > > tools/libxc/xc_dom_elfloader.c | 7 +++++++ > > 1 file changed, 7 insertions(+) > > > > 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 ) > > { > > With this xc_dom_parse_elf_kernel() still returns success and the domain > build fails only later because of the "xen-3.0-unknown" type. Why not > fail directly in xc_dom_parse_elf_kernel() like for elf files which miss > the DomU feature? This doesn't seem to be how xc_dom_guest_type works ATM. There's also a case below that also returns "xen-3.0-unknown", so iff you really want to change the first return of "xen-3.0-unknown" you should also change the one below AFAICT. > And while we are at it: libxl__build_dom() expects that > xc_dom_parse_elf_kernel() sets an errno. Currently this can contain an > unrelated error since it does not get set when returning -EINVAL. Error handling in libxc is all fuzzy, as noted at the top of xc_dom_parse_elf_kernel: /* * This function sometimes returns -1 for error and sometimes * an errno value. ?!?! */ The general consensus is that either you set errno = -EFOO and return -1, or simnply return -EFOO. I can review the patches, but you will have to formally post them. Thanks, Roger. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |