diff options
| author | Steve Sistare <steven.sistare@oracle.com> | 2024-02-22 09:28:37 -0800 |
|---|---|---|
| committer | Cédric Le Goater <clg@redhat.com> | 2024-03-08 22:10:13 +0100 |
| commit | d9fa4223b30ab881cc2f506fda1fc6a86aad5529 (patch) | |
| tree | 1b27db01aebfe377e7f07abbaa843d3d3872e3de /hw/vfio/container.c | |
| parent | cbccded4a2b5d685a426a437e25f67d3a375b292 (diff) | |
| download | focaccia-qemu-d9fa4223b30ab881cc2f506fda1fc6a86aad5529.tar.gz focaccia-qemu-d9fa4223b30ab881cc2f506fda1fc6a86aad5529.zip | |
vfio: register container for cpr
Define entry points to perform per-container cpr-specific initialization and teardown. Signed-off-by: Steve Sistare <steven.sistare@oracle.com> Reviewed-by: Cédric Le Goater <clg@redhat.com>
Diffstat (limited to 'hw/vfio/container.c')
| -rw-r--r-- | hw/vfio/container.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/hw/vfio/container.c b/hw/vfio/container.c index bd25b9fbad..096d77eac3 100644 --- a/hw/vfio/container.c +++ b/hw/vfio/container.c @@ -621,10 +621,15 @@ static int vfio_connect_container(VFIOGroup *group, AddressSpace *as, goto free_container_exit; } + ret = vfio_cpr_register_container(bcontainer, errp); + if (ret) { + goto free_container_exit; + } + ret = vfio_ram_block_discard_disable(container, true); if (ret) { error_setg_errno(errp, -ret, "Cannot set discarding of RAM broken"); - goto free_container_exit; + goto unregister_container_exit; } assert(bcontainer->ops->setup); @@ -667,6 +672,9 @@ listener_release_exit: enable_discards_exit: vfio_ram_block_discard_disable(container, false); +unregister_container_exit: + vfio_cpr_unregister_container(bcontainer); + free_container_exit: g_free(container); @@ -710,6 +718,7 @@ static void vfio_disconnect_container(VFIOGroup *group) vfio_container_destroy(bcontainer); trace_vfio_disconnect_container(container->fd); + vfio_cpr_unregister_container(bcontainer); close(container->fd); g_free(container); |