42 lines
1.8 KiB
Diff
42 lines
1.8 KiB
Diff
|
|
From b9d74bcf6aefe8ab607439ad1c518a453053ccee Mon Sep 17 00:00:00 2001
|
||
|
|
From: Shenming Lu <lushenming@huawei.com>
|
||
|
|
Date: Wed, 10 Mar 2021 11:02:32 +0800
|
||
|
|
Subject: [PATCH] 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>
|
||
|
|
---
|
||
|
|
hw/vfio/migration.c | 3 ++-
|
||
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||
|
|
|
||
|
|
diff --git a/hw/vfio/migration.c b/hw/vfio/migration.c
|
||
|
|
index ea36ae5225..1a97784486 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);
|
||
|
|
--
|
||
|
|
2.27.0
|
||
|
|
|