On Mon, Jul 14, 2025 at 04:59:36PM +0100, Shameer Kolothum wrote: > diff --git a/hw/arm/smmuv3-accel.c b/hw/arm/smmuv3-accel.c > index 74bf20cfaf..f1584dd775 100644 > --- a/hw/arm/smmuv3-accel.c > +++ b/hw/arm/smmuv3-accel.c > @@ -93,6 +93,23 @@ void smmuv3_accel_install_nested_ste(SMMUState *bs, > SMMUDevice *sdev, int sid) > return; > } > > + if (!accel_dev->vdev && accel_dev->idev) { > + IOMMUFDVdev *vdev; > + uint32_t vdev_id; > + SMMUViommu *viommu = accel_dev->viommu;
Can we put the viommu line at the top of these three? > + > + iommufd_backend_alloc_vdev(viommu->core.iommufd, > accel_dev->idev->devid, > + viommu->core.viommu_id, sid, &vdev_id, > + &error_abort); Let's check ret. > diff --git a/hw/arm/smmuv3-accel.h b/hw/arm/smmuv3-accel.h > index 06e81b630d..21028e60c8 100644 > --- a/hw/arm/smmuv3-accel.h > +++ b/hw/arm/smmuv3-accel.h > @@ -40,6 +40,7 @@ typedef struct SMMUv3AccelDevice { > HostIOMMUDeviceIOMMUFD *idev; > SMMUS1Hwpt *s1_hwpt; > SMMUViommu *viommu; > + IOMMUFDVdev *vdev; No need of extra space. > QLIST_ENTRY(SMMUv3AccelDevice) next; > } SMMUv3AccelDevice; > > diff --git a/include/system/iommufd.h b/include/system/iommufd.h > index b7ad2cf10c..8de559d448 100644 > --- a/include/system/iommufd.h > +++ b/include/system/iommufd.h > @@ -44,6 +44,11 @@ typedef struct IOMMUFDViommu { > uint32_t viommu_id; > } IOMMUFDViommu; > > +typedef struct IOMMUFDVdev { > + uint32_t vdev_id; > + uint32_t dev_id; > +} IOMMUFDVdev; This adds to the core header. Maybe it can be done with the patch that adds iommufd_backend_alloc_vdev()? Thanks Nicolin