[PATCH v2 06/13] iommufd/viommu: Add iommufd_viommu_get_vdev_id helper

Tian, Kevin kevin.tian at intel.com
Wed Dec 11 00:02:48 PST 2024


> From: Nicolin Chen <nicolinc at nvidia.com>
> Sent: Wednesday, December 4, 2024 6:10 AM
> 
> +/* Return 0 if device is not associated to the vIOMMU */
> +unsigned long iommufd_viommu_get_vdev_id(struct iommufd_viommu
> *viommu,
> +					 struct device *dev)
> +{
> +	struct iommufd_vdevice *vdev;
> +	unsigned long vdev_id = 0;
> +	unsigned long index;
> +
> +	xa_lock(&viommu->vdevs);
> +	xa_for_each(&viommu->vdevs, index, vdev) {
> +		if (vdev && vdev->dev == dev)

xa_for_each only find valid entries, so if (vdev) is redundant?

> +			vdev_id = (unsigned long)vdev->id;

break out of the loop if hit.

> +	}
> +	xa_unlock(&viommu->vdevs);
> +	return vdev_id;
> +}
> +EXPORT_SYMBOL_NS_GPL(iommufd_viommu_get_vdev_id, IOMMUFD);
> +
>  MODULE_DESCRIPTION("iommufd code shared with builtin modules");
>  MODULE_LICENSE("GPL");
> --
> 2.43.0




More information about the linux-arm-kernel mailing list