On Wed, Jun 29, 2011 at 04:50:10PM +0200, Gerd Hoffmann wrote: > >>>+ 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?
Yes. The point was to check anyway, it should never happen with our driver, but a check can catch an error I guess. > > cheers, > Gerd >