|
@@ -45,6 +45,10 @@ int intel_svm_alloc_pasid_tables(struct intel_iommu *iommu)
|
|
!cap_fl1gp_support(iommu->cap))
|
|
!cap_fl1gp_support(iommu->cap))
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
|
|
|
|
|
|
+ if (cpu_feature_enabled(X86_FEATURE_LA57) &&
|
|
|
|
+ !cap_5lp_support(iommu->cap))
|
|
|
|
+ return -EINVAL;
|
|
|
|
+
|
|
/* Start at 2 because it's defined as 2^(1+PSS) */
|
|
/* Start at 2 because it's defined as 2^(1+PSS) */
|
|
iommu->pasid_max = 2 << ecap_pss(iommu->ecap);
|
|
iommu->pasid_max = 2 << ecap_pss(iommu->ecap);
|
|
|
|
|