iommu/vt-d: Reject SVM bind for failed capability check
authorJacob Pan <jacob.jun.pan@linux.intel.com>
Thu, 2 Jan 2020 00:18:05 +0000 (08:18 +0800)
committerJoerg Roedel <jroedel@suse.de>
Tue, 7 Jan 2020 13:05:57 +0000 (14:05 +0100)
Add a check during SVM bind to ensure CPU and IOMMU hardware capabilities
are met.

Signed-off-by: Jacob Pan <jacob.jun.pan@linux.intel.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/intel-svm.c

index e4a5d54..48205ab 100644 (file)
@@ -234,6 +234,9 @@ int intel_svm_bind_mm(struct device *dev, int *pasid, int flags, struct svm_dev_
        if (!iommu || dmar_disabled)
                return -EINVAL;
 
+       if (!intel_svm_capable(iommu))
+               return -ENOTSUPP;
+
        if (dev_is_pci(dev)) {
                pasid_max = pci_max_pasids(to_pci_dev(dev));
                if (pasid_max < 0)