On Tue, Jul 02, 2013 at 03:46:01PM +0200, Martin Kletzander wrote: > Since commit 23e8b5d8, the code is refactored in a way that supports > domains with multiple graphics elements and commit 37b415200 allows > starting such domains. However none of those commits take migration > into account. Even though qemu doesn't support relocation for > anything else than VNC and for no more than one graphics, there is no > reason to hardcode one graphics into this part of the code as well. I think you mean s/VNC/SPICE/ here. > > Signed-off-by: Martin Kletzander <mkletzan@xxxxxxxxxx> > --- > src/qemu/qemu_migration.c | 29 ++++++++++++++++++----------- > 1 file changed, 18 insertions(+), 11 deletions(-) > > diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c > index 69d5398..d1a86b7 100644 > --- a/src/qemu/qemu_migration.c > +++ b/src/qemu/qemu_migration.c > @@ -427,19 +427,21 @@ qemuMigrationCookieAddGraphics(qemuMigrationCookiePtr mig, > virQEMUDriverPtr driver, > virDomainObjPtr dom) > { > + size_t i = 0; > + > if (mig->flags & QEMU_MIGRATION_COOKIE_GRAPHICS) { > virReportError(VIR_ERR_INTERNAL_ERROR, "%s", > _("Migration graphics data already present")); > return -1; > } > > - if (dom->def->ngraphics == 1 && > - (dom->def->graphics[0]->type == VIR_DOMAIN_GRAPHICS_TYPE_VNC || > - dom->def->graphics[0]->type == VIR_DOMAIN_GRAPHICS_TYPE_SPICE)) { > - if (!(mig->graphics = > - qemuMigrationCookieGraphicsAlloc(driver, dom->def->graphics[0]))) > - return -1; > - mig->flags |= QEMU_MIGRATION_COOKIE_GRAPHICS; > + for (i = 0; i < dom->def->ngraphics; i++) { > + if (dom->def->graphics[i]->type == VIR_DOMAIN_GRAPHICS_TYPE_SPICE) { > + if (!(mig->graphics = > + qemuMigrationCookieGraphicsAlloc(driver, dom->def->graphics[i]))) > + return -1; > + mig->flags |= QEMU_MIGRATION_COOKIE_GRAPHICS; > + } > } > > return 0; > @@ -1602,11 +1604,16 @@ qemuMigrationWaitForSpice(virQEMUDriverPtr driver, > qemuDomainObjPrivatePtr priv = vm->privateData; > bool wait_for_spice = false; > bool spice_migrated = false; > + size_t i = 0; > > - if (vm->def->ngraphics == 1 && > - vm->def->graphics[0]->type == VIR_DOMAIN_GRAPHICS_TYPE_SPICE && > - virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_SEAMLESS_MIGRATION)) > - wait_for_spice = true; > + if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_SEAMLESS_MIGRATION)) { > + for (i = 0; i < vm->def->ngraphics; i++) { > + if (vm->def->graphics[i]->type == VIR_DOMAIN_GRAPHICS_TYPE_SPICE) { > + wait_for_spice = true; > + break; > + } > + } > + } > > if (!wait_for_spice) > return 0; ACK with subject fix Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list