+    case QXL_IO_FLUSH_RELEASE: {
+        QXLReleaseRing *ring =&d->ram->release_ring;
+        if (ring->prod - ring->cons + 1 == ring->num_items) {
+            // TODO - "return" a value to the guest and let it loop?
                   ^^^^
Hmm.
So the story goes: I wrote this, but didn't actually see this happen in 
practice,
particularily since the driver empties the release ring. The simplest would be 
to
replace it with some fprintf(stderr)

How do you think this could happen? If there are no unprocessed requests in the pipeline (shouldn't be, all surfaces are flushed to device memory and destroyedv at that point) and the driver cares empty the release ring before calling this it should not happen, right?

cheers,
  Gerd

Reply via email to