On 7/15/25 14:55, Mark Cave-Ayland wrote:
Use QOM casts to convert between VFIOContainer and VFIOContainerBase instead
of accessing bcontainer directly.

Signed-off-by: Mark Cave-Ayland <mark.caveayl...@nutanix.com>

Reviewed-by: Harsh Prateek Bora <hars...@linux.ibm.com>

---
  hw/vfio/spapr.c | 16 ++++++----------
  1 file changed, 6 insertions(+), 10 deletions(-)

diff --git a/hw/vfio/spapr.c b/hw/vfio/spapr.c
index 564b70ef97..c41e4588d6 100644
--- a/hw/vfio/spapr.c
+++ b/hw/vfio/spapr.c
@@ -62,7 +62,7 @@ static void vfio_prereg_listener_region_add(MemoryListener 
*listener,
      VFIOSpaprContainer *scontainer = container_of(listener, 
VFIOSpaprContainer,
                                                    prereg_listener);
      VFIOContainer *container = &scontainer->container;
-    VFIOContainerBase *bcontainer = &container->bcontainer;
+    VFIOContainerBase *bcontainer = VFIO_IOMMU(container);
      const hwaddr gpa = section->offset_within_address_space;
      hwaddr end;
      int ret;
@@ -244,7 +244,7 @@ static bool vfio_spapr_create_window(VFIOContainer 
*container,
                                      hwaddr *pgsize, Error **errp)
  {
      int ret = 0;
-    VFIOContainerBase *bcontainer = &container->bcontainer;
+    VFIOContainerBase *bcontainer = VFIO_IOMMU(container);
      VFIOSpaprContainer *scontainer = container_of(container, 
VFIOSpaprContainer,
                                                    container);
      IOMMUMemoryRegion *iommu_mr = IOMMU_MEMORY_REGION(section->mr);
@@ -352,8 +352,7 @@ vfio_spapr_container_add_section_window(VFIOContainerBase 
*bcontainer,
                                          MemoryRegionSection *section,
                                          Error **errp)
  {
-    VFIOContainer *container = container_of(bcontainer, VFIOContainer,
-                                            bcontainer);
+    VFIOContainer *container = VFIO_IOMMU_LEGACY(bcontainer);
      VFIOSpaprContainer *scontainer = container_of(container, 
VFIOSpaprContainer,
                                                    container);
      VFIOHostDMAWindow *hostwin;
@@ -443,8 +442,7 @@ static void
  vfio_spapr_container_del_section_window(VFIOContainerBase *bcontainer,
                                          MemoryRegionSection *section)
  {
-    VFIOContainer *container = container_of(bcontainer, VFIOContainer,
-                                            bcontainer);
+    VFIOContainer *container = VFIO_IOMMU_LEGACY(bcontainer);
      VFIOSpaprContainer *scontainer = container_of(container, 
VFIOSpaprContainer,
                                                    container);
@@ -465,8 +463,7 @@ vfio_spapr_container_del_section_window(VFIOContainerBase *bcontainer, static void vfio_spapr_container_release(VFIOContainerBase *bcontainer)
  {
-    VFIOContainer *container = container_of(bcontainer, VFIOContainer,
-                                            bcontainer);
+    VFIOContainer *container = VFIO_IOMMU_LEGACY(bcontainer);
      VFIOSpaprContainer *scontainer = container_of(container, 
VFIOSpaprContainer,
                                                    container);
      VFIOHostDMAWindow *hostwin, *next;
@@ -484,8 +481,7 @@ static void vfio_spapr_container_release(VFIOContainerBase 
*bcontainer)
  static bool vfio_spapr_container_setup(VFIOContainerBase *bcontainer,
                                         Error **errp)
  {
-    VFIOContainer *container = container_of(bcontainer, VFIOContainer,
-                                            bcontainer);
+    VFIOContainer *container = VFIO_IOMMU_LEGACY(bcontainer);
      VFIOSpaprContainer *scontainer = container_of(container, 
VFIOSpaprContainer,
                                                    container);
      struct vfio_iommu_spapr_tce_info info;

Reply via email to