On Thu, Jun 19, 2025 at 11:47:24AM +0000, Pranjal Shrivastava wrote: > I'm not sure if I get this right.. if the user (while porting a VMM or > something) mistakenly passes *type == IOMMU_HW_INFO_TYPE_INTEL_VTD here, > they'll get impl-specific info?
It should call the impl hw_info which should fail? +static void *tegra241_cmdqv_hw_info(struct arm_smmu_device *smmu, u32 *length, + u32 *type) +{ + if (*type != IOMMU_HW_INFO_TYPE_TEGRA241_CMDQV) + return ERR_PTR(-EOPNOTSUPP); If impl ops is null/etc then it fails: + if (!impl_ops || !impl_ops->hw_info) + return ERR_PTR(-EOPNOTSUPP); Where does IOMMU_HW_INFO_TYPE_INTEL_VTD return something? > I agree in that case the impl-specific > driver needs to check the type, but shouldn't we simply return from here > itself if the type isn't arm-smmu-v3? Then how do you return IOMMU_HW_INFO_TYPE_TEGRA241_CMDQV? Jason