forked from rpms/qemu-kvm
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
2.3 KiB
66 lines
2.3 KiB
9 months ago
|
From c3c9f366c356032fa57ff7cc664732ba87ceb3fb Mon Sep 17 00:00:00 2001
|
||
|
From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= <clg@redhat.com>
|
||
|
Date: Tue, 19 Dec 2023 07:58:18 +0100
|
||
|
Subject: [PATCH 051/101] vfio/container: Initialize VFIOIOMMUOps under
|
||
|
vfio_init_container()
|
||
|
MIME-Version: 1.0
|
||
|
Content-Type: text/plain; charset=UTF-8
|
||
|
Content-Transfer-Encoding: 8bit
|
||
|
|
||
|
RH-Author: Eric Auger <eric.auger@redhat.com>
|
||
|
RH-MergeRequest: 211: IOMMUFD backend backport
|
||
|
RH-Jira: RHEL-19302 RHEL-21057
|
||
|
RH-Acked-by: Cédric Le Goater <clg@redhat.com>
|
||
|
RH-Acked-by: Sebastian Ott <sebott@redhat.com>
|
||
|
RH-Commit: [50/67] f325136391b22babadb1be3394c527deecdcd3ca (eauger1/centos-qemu-kvm)
|
||
|
|
||
|
vfio_init_container() already defines the IOMMU type of the container.
|
||
|
Do the same for the VFIOIOMMUOps struct. This prepares ground for the
|
||
|
following patches that will deduce the associated VFIOIOMMUOps struct
|
||
|
from the IOMMU type.
|
||
|
|
||
|
Reviewed-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
|
||
|
Tested-by: Eric Farman <farman@linux.ibm.com>
|
||
|
Signed-off-by: Cédric Le Goater <clg@redhat.com>
|
||
|
(cherry picked from commit bffe92af0e7571868d47a1d1cd2205e13054d492)
|
||
|
Signed-off-by: Eric Auger <eric.auger@redhat.com>
|
||
|
---
|
||
|
hw/vfio/container.c | 6 +++---
|
||
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
||
|
|
||
|
diff --git a/hw/vfio/container.c b/hw/vfio/container.c
|
||
|
index afcfe80488..f4a0434a52 100644
|
||
|
--- a/hw/vfio/container.c
|
||
|
+++ b/hw/vfio/container.c
|
||
|
@@ -370,7 +370,7 @@ static int vfio_get_iommu_type(VFIOContainer *container,
|
||
|
}
|
||
|
|
||
|
static int vfio_init_container(VFIOContainer *container, int group_fd,
|
||
|
- Error **errp)
|
||
|
+ VFIOAddressSpace *space, Error **errp)
|
||
|
{
|
||
|
int iommu_type, ret;
|
||
|
|
||
|
@@ -401,6 +401,7 @@ static int vfio_init_container(VFIOContainer *container, int group_fd,
|
||
|
}
|
||
|
|
||
|
container->iommu_type = iommu_type;
|
||
|
+ vfio_container_init(&container->bcontainer, space, &vfio_legacy_ops);
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
@@ -583,9 +584,8 @@ static int vfio_connect_container(VFIOGroup *group, AddressSpace *as,
|
||
|
container = g_malloc0(sizeof(*container));
|
||
|
container->fd = fd;
|
||
|
bcontainer = &container->bcontainer;
|
||
|
- vfio_container_init(bcontainer, space, &vfio_legacy_ops);
|
||
|
|
||
|
- ret = vfio_init_container(container, group->fd, errp);
|
||
|
+ ret = vfio_init_container(container, group->fd, space, errp);
|
||
|
if (ret) {
|
||
|
goto free_container_exit;
|
||
|
}
|
||
|
--
|
||
|
2.39.3
|
||
|
|