static int
intel_iommu_dev_enable_feat(struct device *dev, enum iommu_dev_features feat)
{
---- --- if (feat == IOMMU_DEV_FEAT_AUX)
++++ +++ switch (feat) {
++++ +++ case IOMMU_DEV_FEAT_AUX:
return intel_iommu_enable_auxd(dev);
---- --- if (feat == IOMMU_DEV_FEAT_IOPF)
++++ +++ case IOMMU_DEV_FEAT_IOPF:
return intel_iommu_dev_has_feat(dev, feat) ? 0 : -ENODEV;
---- --- if (feat == IOMMU_DEV_FEAT_SVA) {
---- --- struct device_domain_info *info = get_domain_info(dev);
---- - -
---- - - if (!info)
---- - - return -EINVAL;
++++ +++ case IOMMU_DEV_FEAT_SVA:
++++ +++ return intel_iommu_enable_sva(dev);
- if (!info)
- return -EINVAL;
-
---- --- if (!info->pasid_enabled || !info->pri_enabled || !info->ats_enabled)
---- --- return -EINVAL;
---- ---
---- --- if (info->iommu->flags & VTD_FLAG_SVM_CAPABLE)
---- --- return 0;
++++ +++ default:
++++ +++ return -ENODEV;
}
---- ---
---- --- return -ENODEV;
}
static int