get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/819291/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 819291,
    "url": "http://patchwork.ozlabs.org/api/patches/819291/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20170927195635.16014-5-ehabkost@redhat.com/",
    "project": {
        "id": 14,
        "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api",
        "name": "QEMU Development",
        "link_name": "qemu-devel",
        "list_id": "qemu-devel.nongnu.org",
        "list_email": "qemu-devel@nongnu.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20170927195635.16014-5-ehabkost@redhat.com>",
    "list_archive_url": null,
    "date": "2017-09-27T19:56:34",
    "name": "[v2,4/5] pci: Add INTERFACE_CONVENTIONAL_PCI_DEVICE to Conventional PCI devices",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "376d1215ec8ea1df4f8ad7e454e13af1739d6b98",
    "submitter": {
        "id": 195,
        "url": "http://patchwork.ozlabs.org/api/people/195/?format=api",
        "name": "Eduardo Habkost",
        "email": "ehabkost@redhat.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20170927195635.16014-5-ehabkost@redhat.com/mbox/",
    "series": [
        {
            "id": 5434,
            "url": "http://patchwork.ozlabs.org/api/series/5434/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=5434",
            "date": "2017-09-27T19:56:30",
            "name": "Mark conventional/PCIe/hybrid PCI devices using interface names",
            "version": 2,
            "mbox": "http://patchwork.ozlabs.org/series/5434/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/819291/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/819291/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>",
        "X-Original-To": "incoming@patchwork.ozlabs.org",
        "Delivered-To": "patchwork-incoming@bilbo.ozlabs.org",
        "Authentication-Results": [
            "ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)",
            "ext-mx02.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com",
            "ext-mx02.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=ehabkost@redhat.com"
        ],
        "Received": [
            "from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3y2THX6rFqz9t4b\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 28 Sep 2017 06:02:00 +1000 (AEST)",
            "from localhost ([::1]:56182 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dxIWt-0001ey-3W\n\tfor incoming@patchwork.ozlabs.org; Wed, 27 Sep 2017 16:01:59 -0400",
            "from eggs.gnu.org ([2001:4830:134:3::10]:47813)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <ehabkost@redhat.com>) id 1dxIT8-0007Du-LM\n\tfor qemu-devel@nongnu.org; Wed, 27 Sep 2017 15:58:11 -0400",
            "from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <ehabkost@redhat.com>) id 1dxIT4-0007dJ-KE\n\tfor qemu-devel@nongnu.org; Wed, 27 Sep 2017 15:58:06 -0400",
            "from mx1.redhat.com ([209.132.183.28]:44638)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <ehabkost@redhat.com>)\n\tid 1dxISj-0007TJ-TR; Wed, 27 Sep 2017 15:57:42 -0400",
            "from smtp.corp.redhat.com\n\t(int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id CD787319B55;\n\tWed, 27 Sep 2017 19:57:39 +0000 (UTC)",
            "from localhost (ovpn-116-18.gru2.redhat.com [10.97.116.18])\n\tby smtp.corp.redhat.com (Postfix) with ESMTP id 09F7160BEB;\n\tWed, 27 Sep 2017 19:57:20 +0000 (UTC)"
        ],
        "DMARC-Filter": "OpenDMARC Filter v1.3.2 mx1.redhat.com CD787319B55",
        "From": "Eduardo Habkost <ehabkost@redhat.com>",
        "To": "qemu-devel@nongnu.org",
        "Date": "Wed, 27 Sep 2017 16:56:34 -0300",
        "Message-Id": "<20170927195635.16014-5-ehabkost@redhat.com>",
        "In-Reply-To": "<20170927195635.16014-1-ehabkost@redhat.com>",
        "References": "<20170927195635.16014-1-ehabkost@redhat.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "X-Scanned-By": "MIMEDefang 2.79 on 10.5.11.12",
        "X-Greylist": "Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.26]);\n\tWed, 27 Sep 2017 19:57:41 +0000 (UTC)",
        "Content-Transfer-Encoding": "quoted-printable",
        "X-detected-operating-system": "by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]",
        "X-Received-From": "209.132.183.28",
        "Subject": "[Qemu-devel] [PATCH v2 4/5] pci: Add\n\tINTERFACE_CONVENTIONAL_PCI_DEVICE to Conventional PCI devices",
        "X-BeenThere": "qemu-devel@nongnu.org",
        "X-Mailman-Version": "2.1.21",
        "Precedence": "list",
        "List-Id": "<qemu-devel.nongnu.org>",
        "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>",
        "List-Archive": "<http://lists.nongnu.org/archive/html/qemu-devel/>",
        "List-Post": "<mailto:qemu-devel@nongnu.org>",
        "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>",
        "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>",
        "Cc": "Peter Maydell <peter.maydell@linaro.org>, \"Michael S. Tsirkin\"\n\t<mst@redhat.com>, Jason Wang <jasowang@redhat.com>, Mark Cave-Ayland\n\t<mark.cave-ayland@ilande.co.uk>, \tGerd Hoffmann <kraxel@redhat.com>,\n\tDavid Gibson <dgibson@redhat.com>, Jiri Slaby <jslaby@suse.cz>, \n\tHannes Reinecke <hare@suse.com>, Stefano Stabellini\n\t<sstabellini@kernel.org>, Alberto Garcia <berto@igalia.com>,\n\tqemu-block@nongnu.org, \tAlexander Graf <agraf@suse.de>,\n\t=?utf-8?q?Herv=C3=A9_Poussineau?= <hpoussin@reactos.org>,\n\tAnthony Perard <anthony.perard@citrix.com>,\n\txen-devel@lists.xenproject.org, David Gibson\n\t<david@gibson.dropbear.id.au>, Artyom Tarasenko <atar4qemu@gmail.com>,\n\tJiri Pirko <jiri@resnulli.us>, \tMarcel Apfelbaum <marcel@redhat.com>,\n\tAlex Williamson <alex.williamson@redhat.com>, qemu-arm@nongnu.org,\n\tLaine Stump <laine@redhat.com>, Igor Mammedov <imammedo@redhat.com>,\n\tYongbok Kim <yongbok.kim@imgtec.com>, Alistair Francis\n\t<alistair23@gmail.com>, John Snow <jsnow@redhat.com>, Richard Henderson\n\t<rth@twiddle.net>, qemu-ppc@nongnu.org, Paolo Bonzini\n\t<pbonzini@redhat.com>, Aurelien Jarno <aurelien@aurel32.net>",
        "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org",
        "Sender": "\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"
    },
    "content": "Add INTERFACE_CONVENTIONAL_PCI_DEVICE to all direct subtypes of\nTYPE_PCI_DEVICE, except:\n\n1) The ones that already have INTERFACE_PCIE_DEVICE set:\n\n* base-xhci\n* e1000e\n* nvme\n* pvscsi\n* vfio-pci\n* virtio-pci\n* vmxnet3\n\n2) base-pci-bridge\n\nNot all PCI bridges are Conventional PCI devices, so\nINTERFACE_CONVENTIONAL_PCI_DEVICE is added only to the subtypes\nthat are actually Conventional PCI:\n\n* dec-21154-p2p-bridge\n* i82801b11-bridge\n* pbm-bridge\n* pci-bridge\n\nThe direct subtypes of base-pci-bridge not touched by this patch\nare:\n\n* xilinx-pcie-root: Already marked as PCIe-only.\n* pcie-pci-bridge: Already marked as PCIe-only.\n* pcie-port: all non-abstract subtypes of pcie-port are already\n  marked as PCIe-only devices.\n\n3) megasas-base\n\nNot all megasas devices are Conventional PCI devices, so the\ninterface names are added to the subclasses registered by\nmegasas_register_types(), according to information in the\nmegasas_devices[] array.\n\n\"megasas-gen2\" already implements INTERFACE_PCIE_DEVICE, so add\nINTERFACE_CONVENTIONAL_PCI_DEVICE only to \"megasas\".\n\nAcked-by: Alberto Garcia <berto@igalia.com>\nAcked-by: John Snow <jsnow@redhat.com>\nAcked-by: Anthony PERARD <anthony.perard@citrix.com>\nSigned-off-by: Eduardo Habkost <ehabkost@redhat.com>\n---\nChanges v1 -> v2:\n* s/legacy/conventional/\n  * Suggested-by: Alex Williamson <alex.williamson@redhat.com>\n* Note about pcie-pci-bridge on commit message.\n* New devices: sungem, sunhme\n\nCc: \"Michael S. Tsirkin\" <mst@redhat.com>\nCc: Igor Mammedov <imammedo@redhat.com>\nCc: Gerd Hoffmann <kraxel@redhat.com>\nCc: Paolo Bonzini <pbonzini@redhat.com>\nCc: Richard Henderson <rth@twiddle.net>\nCc: Eduardo Habkost <ehabkost@redhat.com>\nCc: Stefano Stabellini <sstabellini@kernel.org>\nCc: Anthony Perard <anthony.perard@citrix.com>\nCc: John Snow <jsnow@redhat.com>\nCc: Alberto Garcia <berto@igalia.com>\nCc: Aurelien Jarno <aurelien@aurel32.net>\nCc: Yongbok Kim <yongbok.kim@imgtec.com>\nCc: Jiri Slaby <jslaby@suse.cz>\nCc: Alexander Graf <agraf@suse.de>\nCc: Marcel Apfelbaum <marcel@redhat.com>\nCc: Jason Wang <jasowang@redhat.com>\nCc: Jiri Pirko <jiri@resnulli.us>\nCc: \"Hervé Poussineau\" <hpoussin@reactos.org>\nCc: Peter Maydell <peter.maydell@linaro.org>\nCc: David Gibson <david@gibson.dropbear.id.au>\nCc: Hannes Reinecke <hare@suse.com>\nCc: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>\nCc: Artyom Tarasenko <atar4qemu@gmail.com>\nCc: Alex Williamson <alex.williamson@redhat.com>\nCc: qemu-devel@nongnu.org\nCc: xen-devel@lists.xenproject.org\nCc: qemu-block@nongnu.org\nCc: qemu-ppc@nongnu.org\nCc: qemu-arm@nongnu.org\n---\n hw/acpi/piix4.c                     |  1 +\n hw/audio/ac97.c                     |  4 ++++\n hw/audio/es1370.c                   |  4 ++++\n hw/audio/intel-hda.c                |  4 ++++\n hw/char/serial-pci.c                | 12 ++++++++++++\n hw/display/cirrus_vga.c             |  4 ++++\n hw/display/qxl.c                    |  4 ++++\n hw/display/sm501.c                  |  4 ++++\n hw/display/vga-pci.c                |  4 ++++\n hw/display/vmware_vga.c             |  4 ++++\n hw/i2c/smbus_ich9.c                 |  4 ++++\n hw/i386/amd_iommu.c                 |  4 ++++\n hw/i386/kvm/pci-assign.c            |  4 ++++\n hw/i386/pc_piix.c                   |  4 ++++\n hw/i386/xen/xen_platform.c          |  4 ++++\n hw/i386/xen/xen_pvdevice.c          |  4 ++++\n hw/ide/ich.c                        |  4 ++++\n hw/ide/pci.c                        |  4 ++++\n hw/ipack/tpci200.c                  |  4 ++++\n hw/isa/i82378.c                     |  4 ++++\n hw/isa/lpc_ich9.c                   |  1 +\n hw/isa/piix4.c                      |  4 ++++\n hw/isa/vt82c686.c                   | 16 ++++++++++++++++\n hw/mips/gt64xxx_pci.c               |  4 ++++\n hw/misc/edu.c                       |  5 +++++\n hw/misc/ivshmem.c                   |  4 ++++\n hw/misc/macio/macio.c               |  4 ++++\n hw/misc/pci-testdev.c               |  4 ++++\n hw/net/e1000.c                      |  4 ++++\n hw/net/eepro100.c                   |  4 ++++\n hw/net/ne2000.c                     |  4 ++++\n hw/net/pcnet-pci.c                  |  4 ++++\n hw/net/rocker/rocker.c              |  4 ++++\n hw/net/rtl8139.c                    |  4 ++++\n hw/net/sungem.c                     |  4 ++++\n hw/net/sunhme.c                     |  4 ++++\n hw/pci-bridge/dec.c                 |  8 ++++++++\n hw/pci-bridge/i82801b11.c           |  4 ++++\n hw/pci-bridge/pci_bridge_dev.c      |  1 +\n hw/pci-bridge/pci_expander_bridge.c |  8 ++++++++\n hw/pci-host/apb.c                   |  8 ++++++++\n hw/pci-host/bonito.c                |  4 ++++\n hw/pci-host/gpex.c                  |  4 ++++\n hw/pci-host/grackle.c               |  4 ++++\n hw/pci-host/piix.c                  |  8 ++++++++\n hw/pci-host/ppce500.c               |  4 ++++\n hw/pci-host/prep.c                  |  4 ++++\n hw/pci-host/q35.c                   |  4 ++++\n hw/pci-host/uninorth.c              | 16 ++++++++++++++++\n hw/pci-host/versatile.c             |  4 ++++\n hw/ppc/ppc4xx_pci.c                 |  4 ++++\n hw/scsi/esp-pci.c                   |  4 ++++\n hw/scsi/lsi53c895a.c                |  4 ++++\n hw/scsi/megasas.c                   |  4 ++++\n hw/scsi/mptsas.c                    |  4 ++++\n hw/sd/sdhci.c                       |  4 ++++\n hw/sh4/sh_pci.c                     |  4 ++++\n hw/sparc64/sun4u.c                  |  4 ++++\n hw/usb/hcd-ehci-pci.c               |  4 ++++\n hw/usb/hcd-ohci.c                   |  4 ++++\n hw/usb/hcd-uhci.c                   |  4 ++++\n hw/vfio/pci-quirks.c                |  4 ++++\n hw/watchdog/wdt_i6300esb.c          |  4 ++++\n hw/xen/xen_pt.c                     |  4 ++++\n 64 files changed, 296 insertions(+)",
    "diff": "diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c\nindex f4fd5907b8..a0fb1ce037 100644\n--- a/hw/acpi/piix4.c\n+++ b/hw/acpi/piix4.c\n@@ -718,6 +718,7 @@ static const TypeInfo piix4_pm_info = {\n     .interfaces = (InterfaceInfo[]) {\n         { TYPE_HOTPLUG_HANDLER },\n         { TYPE_ACPI_DEVICE_IF },\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n         { }\n     }\n };\ndiff --git a/hw/audio/ac97.c b/hw/audio/ac97.c\nindex 959c786261..337402e9c6 100644\n--- a/hw/audio/ac97.c\n+++ b/hw/audio/ac97.c\n@@ -1431,6 +1431,10 @@ static const TypeInfo ac97_info = {\n     .parent        = TYPE_PCI_DEVICE,\n     .instance_size = sizeof (AC97LinkState),\n     .class_init    = ac97_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void ac97_register_types (void)\ndiff --git a/hw/audio/es1370.c b/hw/audio/es1370.c\nindex dd7c23d185..59cf252754 100644\n--- a/hw/audio/es1370.c\n+++ b/hw/audio/es1370.c\n@@ -1082,6 +1082,10 @@ static const TypeInfo es1370_info = {\n     .parent        = TYPE_PCI_DEVICE,\n     .instance_size = sizeof (ES1370State),\n     .class_init    = es1370_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void es1370_register_types (void)\ndiff --git a/hw/audio/intel-hda.c b/hw/audio/intel-hda.c\nindex 18a50a8f83..a3e670c188 100644\n--- a/hw/audio/intel-hda.c\n+++ b/hw/audio/intel-hda.c\n@@ -1263,6 +1263,10 @@ static const TypeInfo intel_hda_info = {\n     .instance_size = sizeof(IntelHDAState),\n     .class_init    = intel_hda_class_init,\n     .abstract      = true,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static const TypeInfo intel_hda_info_ich6 = {\ndiff --git a/hw/char/serial-pci.c b/hw/char/serial-pci.c\nindex 303104dd19..cb0d04c1d9 100644\n--- a/hw/char/serial-pci.c\n+++ b/hw/char/serial-pci.c\n@@ -250,6 +250,10 @@ static const TypeInfo serial_pci_info = {\n     .parent        = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(PCISerialState),\n     .class_init    = serial_pci_class_initfn,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static const TypeInfo multi_2x_serial_pci_info = {\n@@ -257,6 +261,10 @@ static const TypeInfo multi_2x_serial_pci_info = {\n     .parent        = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(PCIMultiSerialState),\n     .class_init    = multi_2x_serial_pci_class_initfn,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static const TypeInfo multi_4x_serial_pci_info = {\n@@ -264,6 +272,10 @@ static const TypeInfo multi_4x_serial_pci_info = {\n     .parent        = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(PCIMultiSerialState),\n     .class_init    = multi_4x_serial_pci_class_initfn,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void serial_pci_register_types(void)\ndiff --git a/hw/display/cirrus_vga.c b/hw/display/cirrus_vga.c\nindex afc290ab91..b4d579857a 100644\n--- a/hw/display/cirrus_vga.c\n+++ b/hw/display/cirrus_vga.c\n@@ -3162,6 +3162,10 @@ static const TypeInfo cirrus_vga_info = {\n     .parent        = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(PCICirrusVGAState),\n     .class_init    = cirrus_vga_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void cirrus_vga_register_types(void)\ndiff --git a/hw/display/qxl.c b/hw/display/qxl.c\nindex ae3677fd1e..b20e259122 100644\n--- a/hw/display/qxl.c\n+++ b/hw/display/qxl.c\n@@ -2430,6 +2430,10 @@ static const TypeInfo qxl_pci_type_info = {\n     .instance_size = sizeof(PCIQXLDevice),\n     .abstract = true,\n     .class_init = qxl_pci_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void qxl_primary_class_init(ObjectClass *klass, void *data)\ndiff --git a/hw/display/sm501.c b/hw/display/sm501.c\nindex 9aa515b3da..6eddac911e 100644\n--- a/hw/display/sm501.c\n+++ b/hw/display/sm501.c\n@@ -1843,6 +1843,10 @@ static const TypeInfo sm501_pci_info = {\n     .parent        = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(SM501PCIState),\n     .class_init    = sm501_pci_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void sm501_register_types(void)\ndiff --git a/hw/display/vga-pci.c b/hw/display/vga-pci.c\nindex ac9a76499e..7adb89fcb4 100644\n--- a/hw/display/vga-pci.c\n+++ b/hw/display/vga-pci.c\n@@ -338,6 +338,10 @@ static const TypeInfo vga_pci_type_info = {\n     .instance_size = sizeof(PCIVGAState),\n     .abstract = true,\n     .class_init = vga_pci_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void vga_class_init(ObjectClass *klass, void *data)\ndiff --git a/hw/display/vmware_vga.c b/hw/display/vmware_vga.c\nindex 4a64b41259..cdc3fed6ca 100644\n--- a/hw/display/vmware_vga.c\n+++ b/hw/display/vmware_vga.c\n@@ -1350,6 +1350,10 @@ static const TypeInfo vmsvga_info = {\n     .parent        = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(struct pci_vmsvga_state_s),\n     .class_init    = vmsvga_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void vmsvga_register_types(void)\ndiff --git a/hw/i2c/smbus_ich9.c b/hw/i2c/smbus_ich9.c\nindex ea51e09186..e47556c9d8 100644\n--- a/hw/i2c/smbus_ich9.c\n+++ b/hw/i2c/smbus_ich9.c\n@@ -119,6 +119,10 @@ static const TypeInfo ich9_smb_info = {\n     .parent = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(ICH9SMBState),\n     .class_init = ich9_smb_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void ich9_smb_register(void)\ndiff --git a/hw/i386/amd_iommu.c b/hw/i386/amd_iommu.c\nindex 334938a280..ad8155ca4c 100644\n--- a/hw/i386/amd_iommu.c\n+++ b/hw/i386/amd_iommu.c\n@@ -1227,6 +1227,10 @@ static const TypeInfo amdviPCI = {\n     .name = \"AMDVI-PCI\",\n     .parent = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(AMDVIPCIState),\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void amdvi_iommu_memory_region_class_init(ObjectClass *klass, void *data)\ndiff --git a/hw/i386/kvm/pci-assign.c b/hw/i386/kvm/pci-assign.c\nindex 33e20cb3e8..d8559d8342 100644\n--- a/hw/i386/kvm/pci-assign.c\n+++ b/hw/i386/kvm/pci-assign.c\n@@ -1864,6 +1864,10 @@ static const TypeInfo assign_info = {\n     .instance_size      = sizeof(AssignedDevice),\n     .class_init         = assign_class_init,\n     .instance_init      = assigned_dev_instance_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void assign_register_types(void)\ndiff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c\nindex 9ff79b1fd9..1a56465490 100644\n--- a/hw/i386/pc_piix.c\n+++ b/hw/i386/pc_piix.c\n@@ -1055,6 +1055,10 @@ static TypeInfo isa_bridge_info = {\n     .parent        = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(PCIDevice),\n     .class_init = isa_bridge_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void pt_graphics_register_types(void)\ndiff --git a/hw/i386/xen/xen_platform.c b/hw/i386/xen/xen_platform.c\nindex 9ba7474566..056b87de0b 100644\n--- a/hw/i386/xen/xen_platform.c\n+++ b/hw/i386/xen/xen_platform.c\n@@ -517,6 +517,10 @@ static const TypeInfo xen_platform_info = {\n     .parent        = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(PCIXenPlatformState),\n     .class_init    = xen_platform_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void xen_platform_register_types(void)\ndiff --git a/hw/i386/xen/xen_pvdevice.c b/hw/i386/xen/xen_pvdevice.c\nindex c093b34458..f748823658 100644\n--- a/hw/i386/xen/xen_pvdevice.c\n+++ b/hw/i386/xen/xen_pvdevice.c\n@@ -127,6 +127,10 @@ static const TypeInfo xen_pv_type_info = {\n     .parent        = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(XenPVDevice),\n     .class_init    = xen_pv_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void xen_pv_register_types(void)\ndiff --git a/hw/ide/ich.c b/hw/ide/ich.c\nindex 9472a60cab..8dd0ced6b3 100644\n--- a/hw/ide/ich.c\n+++ b/hw/ide/ich.c\n@@ -184,6 +184,10 @@ static const TypeInfo ich_ahci_info = {\n     .instance_size = sizeof(AHCIPCIState),\n     .instance_init = pci_ich9_ahci_init,\n     .class_init    = ich_ahci_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void ich_ahci_register_types(void)\ndiff --git a/hw/ide/pci.c b/hw/ide/pci.c\nindex f2dcc0ed77..053c0375c1 100644\n--- a/hw/ide/pci.c\n+++ b/hw/ide/pci.c\n@@ -451,6 +451,10 @@ static const TypeInfo pci_ide_type_info = {\n     .parent = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(PCIIDEState),\n     .abstract = true,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void pci_ide_register_types(void)\ndiff --git a/hw/ipack/tpci200.c b/hw/ipack/tpci200.c\nindex 4dfa6b33f3..da05c8589d 100644\n--- a/hw/ipack/tpci200.c\n+++ b/hw/ipack/tpci200.c\n@@ -646,6 +646,10 @@ static const TypeInfo tpci200_info = {\n     .parent        = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(TPCI200State),\n     .class_init    = tpci200_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void tpci200_register_types(void)\ndiff --git a/hw/isa/i82378.c b/hw/isa/i82378.c\nindex 4d29a9900c..d20ea4c2ee 100644\n--- a/hw/isa/i82378.c\n+++ b/hw/isa/i82378.c\n@@ -138,6 +138,10 @@ static const TypeInfo i82378_type_info = {\n     .instance_size = sizeof(I82378State),\n     .instance_init = i82378_init,\n     .class_init = i82378_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void i82378_register_types(void)\ndiff --git a/hw/isa/lpc_ich9.c b/hw/isa/lpc_ich9.c\nindex ac8416d42b..39f56ba44e 100644\n--- a/hw/isa/lpc_ich9.c\n+++ b/hw/isa/lpc_ich9.c\n@@ -823,6 +823,7 @@ static const TypeInfo ich9_lpc_info = {\n     .interfaces = (InterfaceInfo[]) {\n         { TYPE_HOTPLUG_HANDLER },\n         { TYPE_ACPI_DEVICE_IF },\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n         { }\n     }\n };\ndiff --git a/hw/isa/piix4.c b/hw/isa/piix4.c\nindex f811eba59d..6b8bc3faf0 100644\n--- a/hw/isa/piix4.c\n+++ b/hw/isa/piix4.c\n@@ -132,6 +132,10 @@ static const TypeInfo piix4_info = {\n     .parent        = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(PIIX4State),\n     .class_init    = piix4_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void piix4_register_types(void)\ndiff --git a/hw/isa/vt82c686.c b/hw/isa/vt82c686.c\nindex 50dc83df77..c129985e2a 100644\n--- a/hw/isa/vt82c686.c\n+++ b/hw/isa/vt82c686.c\n@@ -301,6 +301,10 @@ static const TypeInfo via_ac97_info = {\n     .parent        = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(VT686AC97State),\n     .class_init    = via_ac97_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void vt82c686b_mc97_realize(PCIDevice *dev, Error **errp)\n@@ -341,6 +345,10 @@ static const TypeInfo via_mc97_info = {\n     .parent        = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(VT686MC97State),\n     .class_init    = via_mc97_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n /* vt82c686 pm init */\n@@ -419,6 +427,10 @@ static const TypeInfo via_pm_info = {\n     .parent        = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(VT686PMState),\n     .class_init    = via_pm_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static const VMStateDescription vmstate_via = {\n@@ -502,6 +514,10 @@ static const TypeInfo via_info = {\n     .parent        = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(VT82C686BState),\n     .class_init    = via_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void vt82c686b_register_types(void)\ndiff --git a/hw/mips/gt64xxx_pci.c b/hw/mips/gt64xxx_pci.c\nindex e8b2eef688..5a9dad9aae 100644\n--- a/hw/mips/gt64xxx_pci.c\n+++ b/hw/mips/gt64xxx_pci.c\n@@ -1232,6 +1232,10 @@ static const TypeInfo gt64120_pci_info = {\n     .parent        = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(PCIDevice),\n     .class_init    = gt64120_pci_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void gt64120_class_init(ObjectClass *klass, void *data)\ndiff --git a/hw/misc/edu.c b/hw/misc/edu.c\nindex 01acacf142..34eb05d213 100644\n--- a/hw/misc/edu.c\n+++ b/hw/misc/edu.c\n@@ -408,12 +408,17 @@ static void edu_class_init(ObjectClass *class, void *data)\n \n static void pci_edu_register_types(void)\n {\n+    static InterfaceInfo interfaces[] = {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    };\n     static const TypeInfo edu_info = {\n         .name          = \"edu\",\n         .parent        = TYPE_PCI_DEVICE,\n         .instance_size = sizeof(EduState),\n         .instance_init = edu_instance_init,\n         .class_init    = edu_class_init,\n+        .interfaces = interfaces,\n     };\n \n     type_register_static(&edu_info);\ndiff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c\nindex b3ef3ec1e3..a5a46827fe 100644\n--- a/hw/misc/ivshmem.c\n+++ b/hw/misc/ivshmem.c\n@@ -1010,6 +1010,10 @@ static const TypeInfo ivshmem_common_info = {\n     .instance_size = sizeof(IVShmemState),\n     .abstract      = true,\n     .class_init    = ivshmem_common_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static const VMStateDescription ivshmem_plain_vmsd = {\ndiff --git a/hw/misc/macio/macio.c b/hw/misc/macio/macio.c\nindex 5d57f45dc6..298e65071c 100644\n--- a/hw/misc/macio/macio.c\n+++ b/hw/misc/macio/macio.c\n@@ -415,6 +415,10 @@ static const TypeInfo macio_type_info = {\n     .instance_init = macio_instance_init,\n     .abstract      = true,\n     .class_init    = macio_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void macio_register_types(void)\ndiff --git a/hw/misc/pci-testdev.c b/hw/misc/pci-testdev.c\nindex 7d5990213e..32041f535f 100644\n--- a/hw/misc/pci-testdev.c\n+++ b/hw/misc/pci-testdev.c\n@@ -326,6 +326,10 @@ static const TypeInfo pci_testdev_info = {\n     .parent        = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(PCITestDevState),\n     .class_init    = pci_testdev_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void pci_testdev_register_types(void)\ndiff --git a/hw/net/e1000.c b/hw/net/e1000.c\nindex eebe3a9c13..acdb935af5 100644\n--- a/hw/net/e1000.c\n+++ b/hw/net/e1000.c\n@@ -1685,6 +1685,10 @@ static const TypeInfo e1000_base_info = {\n     .instance_init = e1000_instance_init,\n     .class_size    = sizeof(E1000BaseClass),\n     .abstract      = true,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static const E1000Info e1000_devices[] = {\ndiff --git a/hw/net/eepro100.c b/hw/net/eepro100.c\nindex a7b9f77519..80b8f47c4b 100644\n--- a/hw/net/eepro100.c\n+++ b/hw/net/eepro100.c\n@@ -2116,6 +2116,10 @@ static void eepro100_register_types(void)\n         type_info.class_init = eepro100_class_init;\n         type_info.instance_size = sizeof(EEPRO100State);\n         type_info.instance_init = eepro100_instance_init;\n+        type_info.interfaces = (InterfaceInfo[]) {\n+            { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+            { },\n+        };\n \n         type_register(&type_info);\n     }\ndiff --git a/hw/net/ne2000.c b/hw/net/ne2000.c\nindex 798d681e25..3938e6ddd8 100644\n--- a/hw/net/ne2000.c\n+++ b/hw/net/ne2000.c\n@@ -786,6 +786,10 @@ static const TypeInfo ne2000_info = {\n     .instance_size = sizeof(PCINE2000State),\n     .class_init    = ne2000_class_init,\n     .instance_init = ne2000_instance_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void ne2000_register_types(void)\ndiff --git a/hw/net/pcnet-pci.c b/hw/net/pcnet-pci.c\nindex 0acf8a4879..0ae5ca4701 100644\n--- a/hw/net/pcnet-pci.c\n+++ b/hw/net/pcnet-pci.c\n@@ -365,6 +365,10 @@ static const TypeInfo pcnet_info = {\n     .instance_size = sizeof(PCIPCNetState),\n     .class_init    = pcnet_class_init,\n     .instance_init = pcnet_instance_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void pci_pcnet_register_types(void)\ndiff --git a/hw/net/rocker/rocker.c b/hw/net/rocker/rocker.c\nindex 9273473d59..823a29df03 100644\n--- a/hw/net/rocker/rocker.c\n+++ b/hw/net/rocker/rocker.c\n@@ -1525,6 +1525,10 @@ static const TypeInfo rocker_info = {\n     .parent        = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(Rocker),\n     .class_init    = rocker_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void rocker_register_types(void)\ndiff --git a/hw/net/rtl8139.c b/hw/net/rtl8139.c\nindex 3be24bbee7..bef0464b2e 100644\n--- a/hw/net/rtl8139.c\n+++ b/hw/net/rtl8139.c\n@@ -3442,6 +3442,10 @@ static const TypeInfo rtl8139_info = {\n     .instance_size = sizeof(RTL8139State),\n     .class_init    = rtl8139_class_init,\n     .instance_init = rtl8139_instance_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void rtl8139_register_types(void)\ndiff --git a/hw/net/sungem.c b/hw/net/sungem.c\nindex dffa0c90f3..6aa8d1117b 100644\n--- a/hw/net/sungem.c\n+++ b/hw/net/sungem.c\n@@ -1437,6 +1437,10 @@ static const TypeInfo sungem_info = {\n     .instance_size = sizeof(SunGEMState),\n     .class_init    = sungem_class_init,\n     .instance_init = sungem_instance_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { }\n+    }\n };\n \n static void sungem_register_types(void)\ndiff --git a/hw/net/sunhme.c b/hw/net/sunhme.c\nindex 60277adcf1..b1efa1b88d 100644\n--- a/hw/net/sunhme.c\n+++ b/hw/net/sunhme.c\n@@ -968,6 +968,10 @@ static const TypeInfo sunhme_info = {\n     .class_init    = sunhme_class_init,\n     .instance_size = sizeof(SunHMEState),\n     .instance_init = sunhme_instance_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { }\n+    }\n };\n \n static void sunhme_register_types(void)\ndiff --git a/hw/pci-bridge/dec.c b/hw/pci-bridge/dec.c\nindex eb275e1a25..84492d5e5f 100644\n--- a/hw/pci-bridge/dec.c\n+++ b/hw/pci-bridge/dec.c\n@@ -79,6 +79,10 @@ static const TypeInfo dec_21154_pci_bridge_info = {\n     .parent        = TYPE_PCI_BRIDGE,\n     .instance_size = sizeof(PCIBridge),\n     .class_init    = dec_21154_pci_bridge_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n PCIBus *pci_dec_21154_init(PCIBus *parent_bus, int devfn)\n@@ -138,6 +142,10 @@ static const TypeInfo dec_21154_pci_host_info = {\n     .parent        = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(PCIDevice),\n     .class_init    = dec_21154_pci_host_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void pci_dec_21154_device_class_init(ObjectClass *klass, void *data)\ndiff --git a/hw/pci-bridge/i82801b11.c b/hw/pci-bridge/i82801b11.c\nindex 2c1b747b4b..cb522bf30c 100644\n--- a/hw/pci-bridge/i82801b11.c\n+++ b/hw/pci-bridge/i82801b11.c\n@@ -106,6 +106,10 @@ static const TypeInfo i82801b11_bridge_info = {\n     .parent        = TYPE_PCI_BRIDGE,\n     .instance_size = sizeof(I82801b11Bridge),\n     .class_init    = i82801b11_bridge_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void d2pbr_register(void)\ndiff --git a/hw/pci-bridge/pci_bridge_dev.c b/hw/pci-bridge/pci_bridge_dev.c\nindex 4373f1d3e2..d56f6638c2 100644\n--- a/hw/pci-bridge/pci_bridge_dev.c\n+++ b/hw/pci-bridge/pci_bridge_dev.c\n@@ -238,6 +238,7 @@ static const TypeInfo pci_bridge_dev_info = {\n     .instance_finalize = pci_bridge_dev_instance_finalize,\n     .interfaces = (InterfaceInfo[]) {\n         { TYPE_HOTPLUG_HANDLER },\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n         { }\n     }\n };\ndiff --git a/hw/pci-bridge/pci_expander_bridge.c b/hw/pci-bridge/pci_expander_bridge.c\nindex ff59abf208..8c8ac737ad 100644\n--- a/hw/pci-bridge/pci_expander_bridge.c\n+++ b/hw/pci-bridge/pci_expander_bridge.c\n@@ -316,6 +316,10 @@ static const TypeInfo pxb_dev_info = {\n     .parent        = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(PXBDev),\n     .class_init    = pxb_dev_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void pxb_pcie_dev_realize(PCIDevice *dev, Error **errp)\n@@ -350,6 +354,10 @@ static const TypeInfo pxb_pcie_dev_info = {\n     .parent        = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(PXBDev),\n     .class_init    = pxb_pcie_dev_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void pxb_register_types(void)\ndiff --git a/hw/pci-host/apb.c b/hw/pci-host/apb.c\nindex b709456b97..1edf57f600 100644\n--- a/hw/pci-host/apb.c\n+++ b/hw/pci-host/apb.c\n@@ -836,6 +836,10 @@ static const TypeInfo pbm_pci_host_info = {\n     .parent        = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(PCIDevice),\n     .class_init    = pbm_pci_host_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void pbm_host_class_init(ObjectClass *klass, void *data)\n@@ -883,6 +887,10 @@ static const TypeInfo pbm_pci_bridge_info = {\n     .parent        = TYPE_PCI_BRIDGE,\n     .class_init    = pbm_pci_bridge_class_init,\n     .instance_size = sizeof(PBMPCIBridge),\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void pbm_iommu_memory_region_class_init(ObjectClass *klass, void *data)\ndiff --git a/hw/pci-host/bonito.c b/hw/pci-host/bonito.c\nindex 89133a9dd3..9f61e27edc 100644\n--- a/hw/pci-host/bonito.c\n+++ b/hw/pci-host/bonito.c\n@@ -833,6 +833,10 @@ static const TypeInfo bonito_info = {\n     .parent        = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(PCIBonitoState),\n     .class_init    = bonito_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void bonito_pcihost_class_init(ObjectClass *klass, void *data)\ndiff --git a/hw/pci-host/gpex.c b/hw/pci-host/gpex.c\nindex be25245219..4090793cf0 100644\n--- a/hw/pci-host/gpex.c\n+++ b/hw/pci-host/gpex.c\n@@ -166,6 +166,10 @@ static const TypeInfo gpex_root_info = {\n     .parent = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(GPEXRootState),\n     .class_init = gpex_root_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void gpex_register(void)\ndiff --git a/hw/pci-host/grackle.c b/hw/pci-host/grackle.c\nindex 2e281f6155..38cd279b6b 100644\n--- a/hw/pci-host/grackle.c\n+++ b/hw/pci-host/grackle.c\n@@ -142,6 +142,10 @@ static const TypeInfo grackle_pci_info = {\n     .parent        = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(PCIDevice),\n     .class_init = grackle_pci_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void pci_grackle_class_init(ObjectClass *klass, void *data)\ndiff --git a/hw/pci-host/piix.c b/hw/pci-host/piix.c\nindex 894e131c00..2b8d90a853 100644\n--- a/hw/pci-host/piix.c\n+++ b/hw/pci-host/piix.c\n@@ -694,6 +694,10 @@ static const TypeInfo piix3_pci_type_info = {\n     .instance_size = sizeof(PIIX3State),\n     .abstract = true,\n     .class_init = pci_piix3_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void piix3_class_init(ObjectClass *klass, void *data)\n@@ -748,6 +752,10 @@ static const TypeInfo i440fx_info = {\n     .parent        = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(PCII440FXState),\n     .class_init    = i440fx_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n /* IGD Passthrough Host Bridge. */\ndiff --git a/hw/pci-host/ppce500.c b/hw/pci-host/ppce500.c\nindex becc0eeb76..39cd24464d 100644\n--- a/hw/pci-host/ppce500.c\n+++ b/hw/pci-host/ppce500.c\n@@ -516,6 +516,10 @@ static const TypeInfo e500_host_bridge_info = {\n     .parent        = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(PPCE500PCIBridgeState),\n     .class_init    = e500_host_bridge_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static Property pcihost_properties[] = {\ndiff --git a/hw/pci-host/prep.c b/hw/pci-host/prep.c\nindex 8b293ba0f1..92eed0f3e1 100644\n--- a/hw/pci-host/prep.c\n+++ b/hw/pci-host/prep.c\n@@ -372,6 +372,10 @@ static const TypeInfo raven_info = {\n     .parent = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(RavenPCIState),\n     .class_init = raven_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static Property raven_pcihost_properties[] = {\ndiff --git a/hw/pci-host/q35.c b/hw/pci-host/q35.c\nindex 1ff648e80c..ddaa7d1b44 100644\n--- a/hw/pci-host/q35.c\n+++ b/hw/pci-host/q35.c\n@@ -591,6 +591,10 @@ static const TypeInfo mch_info = {\n     .parent = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(MCHPCIState),\n     .class_init = mch_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void q35_register(void)\ndiff --git a/hw/pci-host/uninorth.c b/hw/pci-host/uninorth.c\nindex 6cf5e59f86..ea5c265718 100644\n--- a/hw/pci-host/uninorth.c\n+++ b/hw/pci-host/uninorth.c\n@@ -374,6 +374,10 @@ static const TypeInfo unin_main_pci_host_info = {\n     .parent = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(PCIDevice),\n     .class_init = unin_main_pci_host_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void u3_agp_pci_host_class_init(ObjectClass *klass, void *data)\n@@ -398,6 +402,10 @@ static const TypeInfo u3_agp_pci_host_info = {\n     .parent = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(PCIDevice),\n     .class_init = u3_agp_pci_host_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void unin_agp_pci_host_class_init(ObjectClass *klass, void *data)\n@@ -422,6 +430,10 @@ static const TypeInfo unin_agp_pci_host_info = {\n     .parent = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(PCIDevice),\n     .class_init = unin_agp_pci_host_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void unin_internal_pci_host_class_init(ObjectClass *klass, void *data)\n@@ -446,6 +458,10 @@ static const TypeInfo unin_internal_pci_host_info = {\n     .parent = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(PCIDevice),\n     .class_init = unin_internal_pci_host_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void pci_unin_main_class_init(ObjectClass *klass, void *data)\ndiff --git a/hw/pci-host/versatile.c b/hw/pci-host/versatile.c\nindex aa1fdf75fd..6394a520fc 100644\n--- a/hw/pci-host/versatile.c\n+++ b/hw/pci-host/versatile.c\n@@ -487,6 +487,10 @@ static const TypeInfo versatile_pci_host_info = {\n     .parent        = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(PCIDevice),\n     .class_init    = versatile_pci_host_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static Property pci_vpb_properties[] = {\ndiff --git a/hw/ppc/ppc4xx_pci.c b/hw/ppc/ppc4xx_pci.c\nindex 6953f8b9ac..4765dcecca 100644\n--- a/hw/ppc/ppc4xx_pci.c\n+++ b/hw/ppc/ppc4xx_pci.c\n@@ -359,6 +359,10 @@ static const TypeInfo ppc4xx_host_bridge_info = {\n     .parent        = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(PCIDevice),\n     .class_init    = ppc4xx_host_bridge_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void ppc4xx_pcihost_class_init(ObjectClass *klass, void *data)\ndiff --git a/hw/scsi/esp-pci.c b/hw/scsi/esp-pci.c\nindex e295d88939..419fc668ac 100644\n--- a/hw/scsi/esp-pci.c\n+++ b/hw/scsi/esp-pci.c\n@@ -398,6 +398,10 @@ static const TypeInfo esp_pci_info = {\n     .parent = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(PCIESPState),\n     .class_init = esp_pci_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n typedef struct {\ndiff --git a/hw/scsi/lsi53c895a.c b/hw/scsi/lsi53c895a.c\nindex 3e56ab267c..423a2848ea 100644\n--- a/hw/scsi/lsi53c895a.c\n+++ b/hw/scsi/lsi53c895a.c\n@@ -2244,6 +2244,10 @@ static const TypeInfo lsi_info = {\n     .parent        = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(LSIState),\n     .class_init    = lsi_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void lsi53c810_class_init(ObjectClass *klass, void *data)\ndiff --git a/hw/scsi/megasas.c b/hw/scsi/megasas.c\nindex 535ee267c3..d5eae6239a 100644\n--- a/hw/scsi/megasas.c\n+++ b/hw/scsi/megasas.c\n@@ -2468,6 +2468,10 @@ static struct MegasasInfo megasas_devices[] = {\n         .is_express = false,\n         .vmsd = &vmstate_megasas_gen1,\n         .props = megasas_properties_gen1,\n+        .interfaces = (InterfaceInfo[]) {\n+            { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+            { },\n+        },\n     },{\n         .name = TYPE_MEGASAS_GEN2,\n         .desc = \"LSI MegaRAID SAS 2108\",\ndiff --git a/hw/scsi/mptsas.c b/hw/scsi/mptsas.c\nindex d05fa9f549..f6db1b0103 100644\n--- a/hw/scsi/mptsas.c\n+++ b/hw/scsi/mptsas.c\n@@ -1439,6 +1439,10 @@ static const TypeInfo mptsas_info = {\n     .parent = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(MPTSASState),\n     .class_init = mptsas1068_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void mptsas_register_types(void)\ndiff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c\nindex 6d6a791ee9..b064a087c9 100644\n--- a/hw/sd/sdhci.c\n+++ b/hw/sd/sdhci.c\n@@ -1315,6 +1315,10 @@ static const TypeInfo sdhci_pci_info = {\n     .parent = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(SDHCIState),\n     .class_init = sdhci_pci_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static Property sdhci_sysbus_properties[] = {\ndiff --git a/hw/sh4/sh_pci.c b/hw/sh4/sh_pci.c\nindex 38395c082b..cbb01af57f 100644\n--- a/hw/sh4/sh_pci.c\n+++ b/hw/sh4/sh_pci.c\n@@ -179,6 +179,10 @@ static const TypeInfo sh_pci_host_info = {\n     .parent        = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(PCIDevice),\n     .class_init    = sh_pci_host_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void sh_pci_device_class_init(ObjectClass *klass, void *data)\ndiff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c\nindex c3280aaf38..8282651aeb 100644\n--- a/hw/sparc64/sun4u.c\n+++ b/hw/sparc64/sun4u.c\n@@ -275,6 +275,10 @@ static const TypeInfo ebus_info = {\n     .parent        = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(EbusState),\n     .class_init    = ebus_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n #define TYPE_OPENPROM \"openprom\"\ndiff --git a/hw/usb/hcd-ehci-pci.c b/hw/usb/hcd-ehci-pci.c\nindex 6dedcb8989..8c0fc53a26 100644\n--- a/hw/usb/hcd-ehci-pci.c\n+++ b/hw/usb/hcd-ehci-pci.c\n@@ -170,6 +170,10 @@ static const TypeInfo ehci_pci_type_info = {\n     .instance_finalize = usb_ehci_pci_finalize,\n     .abstract = true,\n     .class_init = ehci_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void ehci_data_class_init(ObjectClass *klass, void *data)\ndiff --git a/hw/usb/hcd-ohci.c b/hw/usb/hcd-ohci.c\nindex 267982e160..a31df67daa 100644\n--- a/hw/usb/hcd-ohci.c\n+++ b/hw/usb/hcd-ohci.c\n@@ -2139,6 +2139,10 @@ static const TypeInfo ohci_pci_info = {\n     .parent        = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(OHCIPCIState),\n     .class_init    = ohci_pci_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static Property ohci_sysbus_properties[] = {\ndiff --git a/hw/usb/hcd-uhci.c b/hw/usb/hcd-uhci.c\nindex e3562a4c60..836b11f177 100644\n--- a/hw/usb/hcd-uhci.c\n+++ b/hw/usb/hcd-uhci.c\n@@ -1323,6 +1323,10 @@ static const TypeInfo uhci_pci_type_info = {\n     .class_size    = sizeof(UHCIPCIDeviceClass),\n     .abstract = true,\n     .class_init = uhci_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void uhci_data_class_init(ObjectClass *klass, void *data)\ndiff --git a/hw/vfio/pci-quirks.c b/hw/vfio/pci-quirks.c\nindex 349085ea12..2bd9d126d1 100644\n--- a/hw/vfio/pci-quirks.c\n+++ b/hw/vfio/pci-quirks.c\n@@ -1197,6 +1197,10 @@ static TypeInfo vfio_pci_igd_lpc_bridge_info = {\n     .name = \"vfio-pci-igd-lpc-bridge\",\n     .parent = TYPE_PCI_DEVICE,\n     .class_init = vfio_pci_igd_lpc_bridge_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void vfio_pci_igd_register_types(void)\ndiff --git a/hw/watchdog/wdt_i6300esb.c b/hw/watchdog/wdt_i6300esb.c\nindex 49b3cd188a..e596b0804d 100644\n--- a/hw/watchdog/wdt_i6300esb.c\n+++ b/hw/watchdog/wdt_i6300esb.c\n@@ -463,6 +463,10 @@ static const TypeInfo i6300esb_info = {\n     .parent        = TYPE_PCI_DEVICE,\n     .instance_size = sizeof(I6300State),\n     .class_init    = i6300esb_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void i6300esb_register_types(void)\ndiff --git a/hw/xen/xen_pt.c b/hw/xen/xen_pt.c\nindex 375efa68f6..01df3414d3 100644\n--- a/hw/xen/xen_pt.c\n+++ b/hw/xen/xen_pt.c\n@@ -964,6 +964,10 @@ static const TypeInfo xen_pci_passthrough_info = {\n     .instance_size = sizeof(XenPCIPassthroughState),\n     .instance_finalize = xen_pci_passthrough_finalize,\n     .class_init = xen_pci_passthrough_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },\n+        { },\n+    },\n };\n \n static void xen_pci_passthrough_register_types(void)\n",
    "prefixes": [
        "v2",
        "4/5"
    ]
}