OSDN Git Service

hw/acpi: fix Q35 support for legacy Windows OS
authorMarcel Apfelbaum <marcel@redhat.com>
Mon, 7 Mar 2016 19:14:37 +0000 (21:14 +0200)
committerMichael S. Tsirkin <mst@redhat.com>
Fri, 11 Mar 2016 14:45:21 +0000 (16:45 +0200)
Legacy Windows operating systems like Windows XP and Windows 2003
require _DIS method to be present for all interrupt links.

PC machines already have a no-op implemented for GSI links, add
it also in Q35.

Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
hw/i386/acpi-build.c

index dbd0b93..0e32395 100644 (file)
@@ -1556,6 +1556,12 @@ static Aml *build_gsi_link_dev(const char *name, uint8_t uid, uint8_t gsi)
 
     aml_append(dev, aml_name_decl("_CRS", crs));
 
+    /*
+     * _DIS can be no-op because the interrupt cannot be disabled.
+     */
+    method = aml_method("_DIS", 0, AML_NOTSERIALIZED);
+    aml_append(dev, method);
+
     method = aml_method("_SRS", 1, AML_NOTSERIALIZED);
     aml_append(dev, method);