aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/iommu/amd_iommu_init.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/iommu/amd_iommu_init.c')
-rw-r--r--drivers/iommu/amd_iommu_init.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/iommu/amd_iommu_init.c b/drivers/iommu/amd_iommu_init.c
index 7c3fd572a23b..c7a5d7e14547 100644
--- a/drivers/iommu/amd_iommu_init.c
+++ b/drivers/iommu/amd_iommu_init.c
@@ -755,6 +755,7 @@ static void __init init_iommu_from_pci(struct amd_iommu *iommu)
755 iommu->features = ((u64)high << 32) | low; 755 iommu->features = ((u64)high << 32) | low;
756 756
757 if (iommu_feature(iommu, FEATURE_GT)) { 757 if (iommu_feature(iommu, FEATURE_GT)) {
758 int glxval;
758 u32 pasids; 759 u32 pasids;
759 u64 shift; 760 u64 shift;
760 761
@@ -763,6 +764,14 @@ static void __init init_iommu_from_pci(struct amd_iommu *iommu)
763 pasids = (1 << shift); 764 pasids = (1 << shift);
764 765
765 amd_iommu_max_pasids = min(amd_iommu_max_pasids, pasids); 766 amd_iommu_max_pasids = min(amd_iommu_max_pasids, pasids);
767
768 glxval = iommu->features & FEATURE_GLXVAL_MASK;
769 glxval >>= FEATURE_GLXVAL_SHIFT;
770
771 if (amd_iommu_max_glx_val == -1)
772 amd_iommu_max_glx_val = glxval;
773 else
774 amd_iommu_max_glx_val = min(amd_iommu_max_glx_val, glxval);
766 } 775 }
767 776
768 if (iommu_feature(iommu, FEATURE_GT) && 777 if (iommu_feature(iommu, FEATURE_GT) &&