File ec7b9225-libxl-pv-console.patch of Package libvirt.11411
commit ec7b92257673498d7ba6daa55f9723a421c51da6
Author: Jim Fehlig <jfehlig@suse.com>
Date: Mon Jun 30 10:20:38 2014 -0600
libxl: add PV console if not explicitly specified
Xen PV domains always have a PV console, so add one to the domain
config via post-parse callback if not explicitly specified in
the XML. The legacy Xen driver behaves similarly, causing a
regression when switching to the new Xen toolstack. I.e.
virsh console pv-domain
will no longer work after upgrading a xm/xend stack to xl/libxl.
Index: libvirt-1.2.5/src/libxl/libxl_domain.c
===================================================================
--- libvirt-1.2.5.orig/src/libxl/libxl_domain.c
+++ libvirt-1.2.5/src/libxl/libxl_domain.c
@@ -494,9 +494,38 @@ libxlDomainDeviceDefPostParse(virDomainD
return 0;
}
+static int
+libxlDomainDefPostParse(virDomainDefPtr def,
+ virCapsPtr caps ATTRIBUTE_UNUSED,
+ void *opaque ATTRIBUTE_UNUSED)
+{
+ if (STREQ(def->os.type, "hvm"))
+ return 0;
+
+ if (def->nconsoles == 0) {
+ virDomainChrDefPtr chrdef;
+
+ if (!(chrdef = virDomainChrDefNew()))
+ return -1;
+
+ chrdef->source.type = VIR_DOMAIN_CHR_TYPE_PTY;
+ chrdef->deviceType = VIR_DOMAIN_CHR_DEVICE_TYPE_CONSOLE;
+ chrdef->target.port = 0;
+ chrdef->targetType = VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_XEN;
+
+ if (VIR_ALLOC_N(def->consoles, 1) < 0)
+ return -1;
+
+ def->nconsoles = 1;
+ def->consoles[0] = chrdef;
+ }
+ return 0;
+}
+
virDomainDefParserConfig libxlDomainDefParserConfig = {
.macPrefix = { 0x00, 0x16, 0x3e },
.devicesPostParseCallback = libxlDomainDeviceDefPostParse,
+ .domainPostParseCallback = libxlDomainDefPostParse,
};