On Wed, May 17, 2023 at 12:40:32PM -0600, Alex Williamson wrote: > On Wed, 17 May 2023 15:22:27 -0300 > Jason Gunthorpe <jgg@xxxxxxxxxx> wrote: > > > On Wed, May 17, 2023 at 12:15:17PM -0600, Alex Williamson wrote: > > > > > > +int vfio_iommufd_physical_devid(struct vfio_device *vdev) > > > > +{ > > > > + if (vdev->iommufd_device) > > > > + return iommufd_device_to_id(vdev->iommufd_device); > > > > + if (vdev->noiommu_access) > > > > + return iommufd_access_to_id(vdev->noiommu_access); > > > > + return -EINVAL; > > > > +} > > > > +EXPORT_SYMBOL_GPL(vfio_iommufd_physical_devid); > > > > > > I think these exemplify that it would be better if both emulated and > > > noiommu use the same iommufd_access pointer. Thanks, > > > > Oh, I mis understood your other remark.. Yeah good question I have to > > study this also > > I guess I also missed that this wasn't iommufd_access vs > noiommu_access, it's device vs access, but shouldn't any iommufd_access > pointer provide the devid? I need to go look why we need two different > methods to get a devid... At least this hunk above makes sense, access and device are two different objects with different types, so having different ID accessors is reasonably logical. But it is a good point that this should return the dev id of the normal access for a normal mdev too Ideally I'd like to see that we always return a dev id to userspace for all vfio device types. Then we can rely on it Jason