[Devel] [PATCH hci-8.1 2/5] Revert "vfio/type1: revert "implement notify callback""

Andrey Drobyshev andrey.drobyshev at virtuozzo.com
Fri Oct 23 19:53:40 MSK 2026


From: Anthony Yznaga <anthony.yznaga at oracle.com>

This reverts commit a5ac1f816563503eb25739ba8cc3d74548169f09.

This is needed in order to re-enable support for using VFIO_UPDATE_VADDR
with vfio mediated devices which is needed to fully support Live Update.

Orabug: 35370252
Signed-off-by: Anthony Yznaga <anthony.yznaga at oracle.com>
Reviewed-by: Steve Sistare <steven.sistare at oracle.com>

https://virtuozzo.atlassian.net/browse/VSTOR-150595
(cherry picked from commit f18e52427b2a452dcd0cf2eee3956c039b06e329)
---
 drivers/vfio/vfio_iommu_type1.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/drivers/vfio/vfio_iommu_type1.c b/drivers/vfio/vfio_iommu_type1.c
index 5167bec14e36..b2d6c68fa79c 100644
--- a/drivers/vfio/vfio_iommu_type1.c
+++ b/drivers/vfio/vfio_iommu_type1.c
@@ -75,6 +75,7 @@ struct vfio_iommu {
 	uint64_t		num_non_pinned_groups;
 	bool			v2;
 	bool			dirty_page_tracking;
+	bool			container_open;
 	struct list_head	emulated_iommu_groups;
 };
 
@@ -2645,6 +2646,7 @@ static void *vfio_iommu_type1_open(unsigned long arg)
 	INIT_LIST_HEAD(&iommu->iova_list);
 	iommu->dma_list = RB_ROOT;
 	iommu->dma_avail = dma_entry_limit;
+	iommu->container_open = true;
 	mutex_init(&iommu->lock);
 	mutex_init(&iommu->device_list_lock);
 	INIT_LIST_HEAD(&iommu->device_list);
@@ -3250,6 +3252,18 @@ vfio_iommu_type1_group_iommu_domain(void *iommu_data,
 	return domain;
 }
 
+static void vfio_iommu_type1_notify(void *iommu_data,
+				    enum vfio_iommu_notify_type event)
+{
+	struct vfio_iommu *iommu = iommu_data;
+
+	if (event != VFIO_IOMMU_CONTAINER_CLOSE)
+		return;
+	mutex_lock(&iommu->lock);
+	iommu->container_open = false;
+	mutex_unlock(&iommu->lock);
+}
+
 static const struct vfio_iommu_driver_ops vfio_iommu_driver_ops_type1 = {
 	.name			= "vfio-iommu-type1",
 	.owner			= THIS_MODULE,
@@ -3264,6 +3278,7 @@ static const struct vfio_iommu_driver_ops vfio_iommu_driver_ops_type1 = {
 	.unregister_device	= vfio_iommu_type1_unregister_device,
 	.dma_rw			= vfio_iommu_type1_dma_rw,
 	.group_iommu_domain	= vfio_iommu_type1_group_iommu_domain,
+	.notify			= vfio_iommu_type1_notify,
 };
 
 static int __init vfio_iommu_type1_init(void)
-- 
2.47.1



More information about the Devel mailing list