[Spice-devel] [PATCH spice-server 1/5] worker: move surfaces to DisplayChannel

Jeremy White jwhite at codeweavers.com
Thu Dec 3 11:08:27 PST 2015


>> I'm trying to build an 0.12.6 spice server and I'd like to fix this
>> issue, so I can't use this patch as it is.
>>
>> I spent some time trying to identify what change seems to help, and the
>> attached patch seems to solve the problem.
>>
>> I'm hoping that someone smarter than me can kibitz on this patch, and
>> let me know if they think it's basically 'safe' or not.
>>
> 
> Yes, it's safe, is always safe to call that function.
> However... this means that probably you are passing a wrong surface_id
> from your software!

That's good to know, thanks.  But for the record, I don't think it's an
incorrect surface_id.  That is, the change I made was simply to move the
flush up higher in the function; I did not add any calls.  That mirrors
a logic change that was in the relevant patch.

The issue is that Xspice ends up being a hybrid; some commands go
through the queue and io/port, and some commands are actually done via
direct call.

So the sequence is:  push a create surface message, and then invoke
update_area.  The latter is called before the create surface message has
been processed, which causes the problem.  So the surface is invalid at
the time of the update call, but if we flush the queue, the surface is
created, and everything works.

I guess that's a long way of saying that I think my patch is appropriate
for 0.12.6 :-/.

Cheers,

Jeremy


More information about the Spice-devel mailing list