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;