aboutsummaryrefslogtreecommitdiff
path: root/hw/vfio
diff options
context:
space:
mode:
authorShenming Lu <lushenming@huawei.com>2021-03-10 11:02:32 +0800
committerAlex Williamson <alex.williamson@redhat.com>2021-03-16 10:06:44 -0600
commit8ce1ff990eff6affbdd0492fe4fc95e113235e35 (patch)
tree128fa933178e2191764df269e020684064af5191 /hw/vfio
parentd329f5032e17f3ecc7f8c2c3c5f130ec671000d2 (diff)
downloadqemu-8ce1ff990eff6affbdd0492fe4fc95e113235e35.zip
qemu-8ce1ff990eff6affbdd0492fe4fc95e113235e35.tar.gz
qemu-8ce1ff990eff6affbdd0492fe4fc95e113235e35.tar.bz2
vfio: Set the priority of the VFIO VM state change handler explicitly
In the VFIO VM state change handler when stopping the VM, the _RUNNING bit in device_state is cleared which makes the VFIO device stop, including no longer generating interrupts. Then we can save the pending states of all interrupts in the GIC VM state change handler (on ARM). So we have to set the priority of the VFIO VM state change handler explicitly (like virtio devices) to ensure it is called before the GIC's in saving. Signed-off-by: Shenming Lu <lushenming@huawei.com> Reviewed-by: Kirti Wankhede <kwankhede@nvidia.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Message-Id: <20210310030233.1133-3-lushenming@huawei.com> Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Diffstat (limited to 'hw/vfio')
-rw-r--r--hw/vfio/migration.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/hw/vfio/migration.c b/hw/vfio/migration.c
index 003786f..eafb778 100644
--- a/hw/vfio/migration.c
+++ b/hw/vfio/migration.c
@@ -862,7 +862,8 @@ static int vfio_migration_init(VFIODevice *vbasedev,
register_savevm_live(id, VMSTATE_INSTANCE_ID_ANY, 1, &savevm_vfio_handlers,
vbasedev);
- migration->vm_state = qemu_add_vm_change_state_handler(vfio_vmstate_change,
+ migration->vm_state = qdev_add_vm_change_state_handler(vbasedev->dev,
+ vfio_vmstate_change,
vbasedev);
migration->migration_state.notify = vfio_migration_state_notifier;
add_migration_state_change_notifier(&migration->migration_state);