[PATCH v1 3/3] iommu/arm-smmu-v3-iommufd: Require exactly one Stream ID for a vDEVICE

Tian, Kevin kevin.tian at intel.com
Thu Jul 2 23:40:22 PDT 2026


> From: Nicolin Chen <nicolinc at nvidia.com>
> Sent: Tuesday, June 30, 2026 5:16 AM
>  }
> 
> +static int arm_vsmmu_vdevice_init(struct iommufd_vdevice *vdev)
> +{
> +	struct device *dev = iommufd_vdevice_to_device(vdev);
> +	struct arm_smmu_master *master = dev_iommu_priv_get(dev);
> +
> +	/*
> +	 * arm_vsmmu_vsid_to_sid() maps a vSID to master->streams[0]
> alone, so
> +	 * more streams would leave the rest stale and none reads out of
> bounds.
> +	 */
> +	if (master->num_streams != 1)
> +		return -EINVAL;
> +	return 0;
> +}

- EOPNOTSUPP, given the comment seems to indicate it as a current
limitation hence may be removed in future? otherwise with -EINVAL
this may be documented somewhere to get attention from userspace.

arm_vsmmu_vsid_to_sid()

	/* At this moment, iommufd only supports PCI device that has one SID */
	if (sid)
		*sid = master->streams[0].id;

otherwise,

Reviewed-by: Kevin Tian <kevin.tian at intel.com>



More information about the linux-arm-kernel mailing list