v4 is mostly fixes suggested by Stefano.
v3 -> v4:
* Patch 1 (NEW) ("vhost-vsock: block CPR migration modes"): block the
CPR modes until the support is fully in place. Make mid-series CPR
attempts fail early and gracefully instead of crashing;
* Patch 2 -> 3 ("vhost-vsock: don't reset connections during CPR"):
write vhost_vsock_post_load() in its final shape, not defer to the
last patch;
* Patch 4 -> 5 ("vhost-vsock: preserve vhost FD during CPR"): reword
commit message;
* Patch 5 -> 6 ("vhost: factor out vhost_dev_init_backend()"):
document vhost_dev_cleanup() on error;
* Patch 7 (NEW) ("vhost: make vhost_dev_cleanup() safe on a partially
initialized device"): split the vq->dev NULL check out of the
ownership handoff patch;
* Patch 9 (NEW) ("vhost: add vhost_dev_is_initialized() helper"): add
an explicit 'initialized' field to struct vhost_dev instead of
relying on hdev->mem;
* Patch 7 -> 10 ("vhost-vsock: hand off device ownership across CPR"):
- make the start guard in vhost_vsock_set_status() check
vhost_dev_is_initialized() and vsock->owner_reset instead of
vhost_dev.mem;
- call vhost_dev_cleanup() if setting the guest cid fails in
post_load;
- lift the CPR blocker (narrow it to the ID-less case);
- reword commit message.
v3: https://lore.kernel.org/qemu-devel/20260626164643.2526-1-andrey.drobyshev@virtuozzo.com
Andrey Drobyshev (10):
vhost-vsock: block CPR migration modes
vhost: add vhost_reset_owner op
vhost-vsock: don't reset connections during CPR
vhost-vsock: fix FD leak in realize()
vhost-vsock: preserve vhost FD during CPR
vhost: factor out vhost_dev_init_backend()
vhost: make vhost_dev_cleanup() safe on a partially initialized device
vhost: add vhost_dev_set_owner() / vhost_dev_reset_owner() helpers
vhost: add vhost_dev_is_initialized() helper
vhost-vsock: hand off device ownership across CPR
hw/virtio/vhost-kernel.c | 6 +
hw/virtio/vhost-vsock.c | 220 +++++++++++++++++++++++++++---
hw/virtio/vhost.c | 57 ++++++--
include/hw/virtio/vhost-backend.h | 1 +
include/hw/virtio/vhost-vsock.h | 4 +
include/hw/virtio/vhost.h | 49 +++++++
6 files changed, 307 insertions(+), 30 deletions(-)
--
2.47.1