aboutsummaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorCornelia Huck <cohuck@redhat.com>2019-02-01 13:29:08 +0100
committerCornelia Huck <cohuck@redhat.com>2019-02-04 13:47:50 +0100
commitaede5d5dfc5f3e4ea7467b28c51fda2f8945d117 (patch)
tree5fbf714d7e82898e7922dcfee3dd0610e8f76027 /hw
parent9f2a46b11139cd21c41f4d97c0416af6f9e76f7b (diff)
downloadqemu-aede5d5dfc5f3e4ea7467b28c51fda2f8945d117.zip
qemu-aede5d5dfc5f3e4ea7467b28c51fda2f8945d117.tar.gz
qemu-aede5d5dfc5f3e4ea7467b28c51fda2f8945d117.tar.bz2
s390x/pci: mark zpci devices as unmigratable
We currently don't migrate any state for zpci devices, which are coupled with standard pci devices. This means funny things happen when we e.g. try to migrate with a virtio-pci device but the s390x- specific zpci state is not migrated (vfio-pci is not affected, as it is not migratable anyway.) Until this is fixed, mark zpci devices as unmigratable. Reported-by: David Hildenbrand <david@redhat.com> Reviewed-by: David Hildenbrand <david@redhat.com> Reviewed-by: Collin Walling <walling@linux.ibm.com> Signed-off-by: Cornelia Huck <cohuck@redhat.com>
Diffstat (limited to 'hw')
-rw-r--r--hw/s390x/s390-pci-bus.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c
index c96a7cb..96c7c18 100644
--- a/hw/s390x/s390-pci-bus.c
+++ b/hw/s390x/s390-pci-bus.c
@@ -1253,6 +1253,15 @@ static Property s390_pci_device_properties[] = {
DEFINE_PROP_END_OF_LIST(),
};
+static const VMStateDescription s390_pci_device_vmstate = {
+ .name = TYPE_S390_PCI_DEVICE,
+ /*
+ * TODO: add state handling here, so migration works at least with
+ * emulated pci devices on s390x
+ */
+ .unmigratable = 1,
+};
+
static void s390_pci_device_class_init(ObjectClass *klass, void *data)
{
DeviceClass *dc = DEVICE_CLASS(klass);
@@ -1263,6 +1272,7 @@ static void s390_pci_device_class_init(ObjectClass *klass, void *data)
dc->bus_type = TYPE_S390_PCI_BUS;
dc->realize = s390_pci_device_realize;
dc->props = s390_pci_device_properties;
+ dc->vmsd = &s390_pci_device_vmstate;
}
static const TypeInfo s390_pci_device_info = {