Hi,
+qxl_destroy_primary(d, async);
+#if SPICE_INTERFACE_QXL_MINOR>= 1
+if (d->mode == QXL_MODE_UNDEFINED&& async == QXL_ASYNC) {
+dprint(d, 1, "QXL_IO_DESTROY_PRIMARY_ASYNC in %s, ignored\n",
+qxl_mode_to_string(d->mode));
+qxl_sen
On Fri, Jul 15, 2011 at 10:12:14AM +0200, Gerd Hoffmann wrote:
> > case QXL_IO_DESTROY_PRIMARY:
> > if (val != 0) {
> >-qxl_guest_bug(d, "QXL_IO_DESTROY_PRIMARY: val != 0");
> >-break;
> >+qxl_guest_bug(d, "QXL_IO_DESTROY_PRIMARY (async=%d): val !=
On Fri, Jul 15, 2011 at 10:19:27AM +0200, Gerd Hoffmann wrote:
> On 07/14/11 21:13, Alon Levy wrote:
> >Some of the QXL port i/o commands are waiting for the spice server to
> >complete certain actions. Add async versions for these commands, so we
> >don't block the vcpu while the spice server pro
On 07/14/11 21:13, Alon Levy wrote:
Some of the QXL port i/o commands are waiting for the spice server to
complete certain actions. Add async versions for these commands, so we
don't block the vcpu while the spice server processses the command.
Instead the qxl device will raise an IRQ when done.
case QXL_IO_DESTROY_PRIMARY:
if (val != 0) {
-qxl_guest_bug(d, "QXL_IO_DESTROY_PRIMARY: val != 0");
-break;
+qxl_guest_bug(d, "QXL_IO_DESTROY_PRIMARY (async=%d): val != 0",
+ async);
+goto cancel_async;
+
Some of the QXL port i/o commands are waiting for the spice server to
complete certain actions. Add async versions for these commands, so we
don't block the vcpu while the spice server processses the command.
Instead the qxl device will raise an IRQ when done.
The async command processing relies