On 11/10/2015 06:43 AM, Daniel P. Berrange wrote: > On Tue, Nov 10, 2015 at 06:22:32AM -0500, John Ferlan wrote: >> >> >> On 11/10/2015 05:31 AM, Daniel P. Berrange wrote: >>> On Mon, Nov 09, 2015 at 06:28:03PM -0500, John Ferlan wrote: >>>> >>>> >>>> On 11/09/2015 11:24 AM, Daniel P. Berrange wrote: >>>>> The -sdl and -net ...name=XXX arguments were both introduced >>>>> in QEMU 0.10, so the QEMU driver can assume they are always >>>>> available. >>>>> >>>> >>>> The -sdl wasn't really removed it seems - although it did me peeking >>>> into the rabbit hole for a make check failure... >>> >>>> After a bit of debugging - qemuParseCommandLine has the following: >>>> >>>> } else if (STRPREFIX(arg, "-hd") || >>>> STRPREFIX(arg, "-sd") || >>>> STRPREFIX(arg, "-fd") || >>>> STREQ(arg, "-cdrom")) { >>>> WANT_VALUE(); >>>> >>>> If I add: >>>> >>>> } else if (STREQ(arg, "-sdl")) { >>>> /* Ignore */ >>>> >>>> Just before that, then things are happy again. >>> >>> Rather than ignoring it, I added this: >>> >>> virDomainGraphicsDefPtr sdl; >>> if (VIR_ALLOC(sdl) < 0) >>> goto error; >>> sdl->type = VIR_DOMAIN_GRAPHICS_TYPE_SDL; >>> >> >> This seems to duplicate an allocation later : >> >> if (!nographics && def->ngraphics == 0) { > > That deals with case where QEMU would previously default to SDL if > no args are listed. If you specified '-vnc blah -sdl' it would not > trigger though, so we need to improve that. > >> It's also not FREE'd or appended to def->graphics > > Sigh, so how about this instead, so we just explicitly trigger > the existing SDL codepath: > Seems fine to me... ACK John > diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c > index c016d43..792ada3 100644 > --- a/src/qemu/qemu_command.c > +++ b/src/qemu/qemu_command.c > @@ -12759,6 +12759,7 @@ qemuParseCommandLine(virCapsPtr qemuCaps, > qemuDomainCmdlineDefPtr cmd = NULL; > virDomainDiskDefPtr disk = NULL; > const char *ceph_args = qemuFindEnv(progenv, "CEPH_ARGS"); > + bool have_sdl = false; > > if (pidfile) > *pidfile = NULL; > @@ -12982,10 +12983,7 @@ qemuParseCommandLine(virCapsPtr qemuCaps, > goto error; > } > } else if (STREQ(arg, "-sdl")) { > - virDomainGraphicsDefPtr sdl; > - if (VIR_ALLOC(sdl) < 0) > - goto error; > - sdl->type = VIR_DOMAIN_GRAPHICS_TYPE_SDL; > + have_sdl = true; > } else if (STREQ(arg, "-m")) { > int mem; > WANT_VALUE(); > @@ -13672,7 +13670,7 @@ qemuParseCommandLine(virCapsPtr qemuCaps, > VIR_FREE(capsdata); > } > > - if (!nographics && def->ngraphics == 0) { > + if (!nographics && (def->ngraphics == 0 || have_sdl)) { > virDomainGraphicsDefPtr sdl; > const char *display = qemuFindEnv(progenv, "DISPLAY"); > const char *xauth = qemuFindEnv(progenv, "XAUTHORITY"); > > > Regards, > Daniel > -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list