On 04/04/2013 02:10 PM, Peter Krempa wrote:
This patch implements the devices post parse cllback and uses it to
fill
the default qemu network card model into the XML if none is specified.
Libvirt assumes that the network card model for qemu is the "rtl8139".
Record this in the XML using the new callback to avoid user
confusion.
+ if (dev->type == VIR_DOMAIN_DEVICE_NET &&
+ dev->data.net->type != VIR_DOMAIN_NET_TYPE_HOSTDEV) {
+ if (!dev->data.net->model &&
+ !(dev->data.net->model = strdup("rtl8139")))
+ goto no_memory;
+ }
Not sure about other architectures, but this will break s390.
You should squash in something similar to (hope t-bird isn't breaking
format again):
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index e5e9223..c3a7aff 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -678,7 +678,7 @@ qemuDomainDefPostParse(virDomainDefPtr def,
static int
qemuDomainDeviceDefPostParse(virDomainDeviceDefPtr dev,
- virDomainDefPtr def ATTRIBUTE_UNUSED,
+ virDomainDefPtr def,
virCapsPtr caps ATTRIBUTE_UNUSED,
void *opaque)
{
@@ -688,9 +688,15 @@ qemuDomainDeviceDefPostParse(virDomainDeviceDefPtr dev,
if (dev->type == VIR_DOMAIN_DEVICE_NET &&
dev->data.net->type != VIR_DOMAIN_NET_TYPE_HOSTDEV) {
+ const char *model = NULL;
+ if (def->os.arch == VIR_ARCH_S390 ||
+ def->os.arch == VIR_ARCH_S390X)
+ model = "virtio";
+ else
+ model = "rtl8139";
if (!dev->data.net->model &&
- !(dev->data.net->model = strdup("rtl8139")))
- goto no_memory;
+ !(dev->data.net->model = strdup(model)))
+ goto no_memory;
}
/* set default disk types and drivers */
--
Mit freundlichen Grüßen/Kind Regards
Viktor Mihajlovski
IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Martina Köderitz
Geschäftsführung: Dirk Wittkopp
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294