Hi Jean,

On 27.02.2017 20:54, Jean-Philippe Brucker wrote:
+/*
+ * Returns -ENOSYS if ATS is not supported either by the device or by the SMMU
+ */
+static int arm_smmu_enable_ats(struct arm_smmu_master_data *master)
+{
+       int ret;
+       size_t stu;
+       struct pci_dev *pdev;
+       struct arm_smmu_device *smmu = master->smmu;
+
+       if (!(smmu->features & ARM_SMMU_FEAT_ATS) || !dev_is_pci(master->dev))
+               return -ENOSYS;
+
+       pdev = to_pci_dev(master->dev);
+
+#ifdef CONFIG_PCI_ATS
+       if (!pdev->ats_cap)
+               return -ENOSYS;
+#else
+       return -ENOSYS;
+#endif

Nit: This deserves to be another helper in ats.c like:

int pci_ats_supported(struct pci_dev *dev) {
        if (!pdev->ats_cap)
                return 0;

        return 1;
}

Thanks,
Tomasz
_______________________________________________
iommu mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to