summaryrefslogtreecommitdiff
path: root/hw/qxl.c
diff options
context:
space:
mode:
authorAlon Levy <alevy@redhat.com>2013-01-21 14:48:06 +0200
committerGerd Hoffmann <kraxel@redhat.com>2013-01-22 11:01:06 +0100
commite0ac6097b6cc24694e83ae61e80040177bb5a584 (patch)
treeb292753fa6bba578ab34b6ec460d6e2c7b715d4a /hw/qxl.c
parent1356b98d3e95a85071e6bf9a99e8799e1ae1bbee (diff)
downloadqemu-e0ac6097b6cc24694e83ae61e80040177bb5a584.tar.gz
qemu-e0ac6097b6cc24694e83ae61e80040177bb5a584.tar.bz2
qemu-e0ac6097b6cc24694e83ae61e80040177bb5a584.zip
qxl: stop using non revision 4 rom fields for revision < 4
Signed-off-by: Alon Levy <alevy@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'hw/qxl.c')
-rw-r--r--hw/qxl.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/hw/qxl.c b/hw/qxl.c
index 9dc44b9b88..0d81816944 100644
--- a/hw/qxl.c
+++ b/hw/qxl.c
@@ -945,6 +945,12 @@ static void interface_set_client_capabilities(QXLInstance *sin,
{
PCIQXLDevice *qxl = container_of(sin, PCIQXLDevice, ssd.qxl);
+ if (qxl->revision < 4) {
+ trace_qxl_set_client_capabilities_unsupported_by_revision(qxl->id,
+ qxl->revision);
+ return;
+ }
+
if (runstate_check(RUN_STATE_INMIGRATE) ||
runstate_check(RUN_STATE_POSTMIGRATE)) {
return;
@@ -979,6 +985,11 @@ static int interface_client_monitors_config(QXLInstance *sin,
QXLRom *rom = memory_region_get_ram_ptr(&qxl->rom_bar);
int i;
+ if (qxl->revision < 4) {
+ trace_qxl_client_monitors_config_unsupported_by_device(qxl->id,
+ qxl->revision);
+ return 0;
+ }
/*
* Older windows drivers set int_mask to 0 when their ISR is called,
* then later set it to ~0. So it doesn't relate to the actual interrupts