Message ID | 1571920483-3382-6-git-send-email-yi.l.liu@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | intel_iommu: expose Shared Virtual Addressing to VM | expand |
On Thu, Oct 24, 2019 at 08:34:26AM -0400, Liu Yi L wrote: [...] > +typedef struct VFIOIOMMUContext { > + VFIOContainer *container; > + IOMMUContext *iommu_ctx; > + IOMMUCTXNotifier n; > + QLIST_ENTRY(VFIOIOMMUContext) iommu_ctx_next; > +} VFIOIOMMUContext; > + No strong opinion on this - but for me it would be more meaningful to squash this patch into where this struct is firstly used.
> From: Peter Xu > Sent: Friday, November 1, 2019 10:59 PM > To: Liu, Yi L <yi.l.liu@intel.com> > Subject: Re: [RFC v2 05/22] vfio/common: add iommu_ctx_notifier in container > > On Thu, Oct 24, 2019 at 08:34:26AM -0400, Liu Yi L wrote: > > [...] > > > +typedef struct VFIOIOMMUContext { > > + VFIOContainer *container; > > + IOMMUContext *iommu_ctx; > > + IOMMUCTXNotifier n; > > + QLIST_ENTRY(VFIOIOMMUContext) iommu_ctx_next; } VFIOIOMMUContext; > > + > > No strong opinion on this - but for me it would be more meaningful to squash this > patch into where this struct is firstly used. got it. will make it in next version. Regards, Yi Liu
diff --git a/hw/vfio/common.c b/hw/vfio/common.c index 5ca1148..d418527 100644 --- a/hw/vfio/common.c +++ b/hw/vfio/common.c @@ -1271,6 +1271,7 @@ static int vfio_connect_container(VFIOGroup *group, AddressSpace *as, container->error = NULL; QLIST_INIT(&container->giommu_list); QLIST_INIT(&container->hostwin_list); + QLIST_INIT(&container->iommu_ctx_list); ret = vfio_init_container(container, group->fd, errp); if (ret) { diff --git a/include/hw/vfio/vfio-common.h b/include/hw/vfio/vfio-common.h index fd56420..975d12b 100644 --- a/include/hw/vfio/vfio-common.h +++ b/include/hw/vfio/vfio-common.h @@ -29,6 +29,7 @@ #ifdef CONFIG_LINUX #include <linux/vfio.h> #endif +#include "hw/iommu/iommu.h" #define VFIO_MSG_PREFIX "vfio %s: " @@ -75,6 +76,7 @@ typedef struct VFIOContainer { bool initialized; unsigned long pgsizes; QLIST_HEAD(, VFIOGuestIOMMU) giommu_list; + QLIST_HEAD(, VFIOIOMMUContext) iommu_ctx_list; QLIST_HEAD(, VFIOHostDMAWindow) hostwin_list; QLIST_HEAD(, VFIOGroup) group_list; QLIST_ENTRY(VFIOContainer) next; @@ -88,6 +90,13 @@ typedef struct VFIOGuestIOMMU { QLIST_ENTRY(VFIOGuestIOMMU) giommu_next; } VFIOGuestIOMMU; +typedef struct VFIOIOMMUContext { + VFIOContainer *container; + IOMMUContext *iommu_ctx; + IOMMUCTXNotifier n; + QLIST_ENTRY(VFIOIOMMUContext) iommu_ctx_next; +} VFIOIOMMUContext; + typedef struct VFIOHostDMAWindow { hwaddr min_iova; hwaddr max_iova;
This patch adds a list in VFIOContainer to store iommu_ctx_notifier which is based on IOMMUContext. As a preparation of registering iommu_ctx_notifiers. Cc: Kevin Tian <kevin.tian@intel.com> Cc: Jacob Pan <jacob.jun.pan@linux.intel.com> Cc: Peter Xu <peterx@redhat.com> Cc: Eric Auger <eric.auger@redhat.com> Cc: Yi Sun <yi.y.sun@linux.intel.com> Cc: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Liu Yi L <yi.l.liu@intel.com> --- hw/vfio/common.c | 1 + include/hw/vfio/vfio-common.h | 9 +++++++++ 2 files changed, 10 insertions(+)