vmware_vga: Add checks to deal with non-atomic fifo writes.
authorAndrzej Zaborowski <balrog@zabor.org>
Fri, 10 Sep 2010 00:23:31 +0000 (02:23 +0200)
committerAndrzej Zaborowski <balrog@zabor.org>
Fri, 10 Sep 2010 00:23:31 +0000 (02:23 +0200)
commit608541da6033c49a13b5ac4b534a062a3461a338
tree176e41aba6f6498213ddb82f53ca6ffb909e080b
parent8f5bf15c2c1679fe4e8c4fc0b2efcb9bb599b217
vmware_vga: Add checks to deal with non-atomic fifo writes.

Janne Huttunen noticed that the FIFO end pointer is updated by the
guest after writing each word to the FIFO, at least the X.org driver
which is open does this.  This means that there's no way for the
host to know if the guest is in the middle a write operation.  Qemu
thus needs to read the beginning of the command up to when it's able
to tell how many words are expected for the given command.  It will
abort reading and rewind the FIFO if there aren't enough words yet,
this should be relatively rare but it is suspected to have been the
cause of the occasional FIFO overrun that killed the display.
hw/vmware_vga.c