On 6/13/2022 8:24 AM, Suravee Suthikulpanit wrote:
@@ -3543,3 +3537,30 @@ int amd_iommu_pc_set_reg(struct amd_iommu *iommu, u8 
bank, u8 cntr, u8 fxn, u64
return iommu_pc_get_set_reg(iommu, bank, cntr, fxn, value, true);
  }
+
+bool iommu_sev_snp_supported(void)
+{
+       /*
+        * The SEV-SNP support requires that IOMMU must be enabled, and is
+        * not configured in the passthrough mode.
+        */
+       if (no_iommu || iommu_default_passthrough()) {
+               pr_err("SEV-SNP: IOMMU is either disabled or configured in 
passthrough mode.\n");
+               return false;
+       }
+
+       amd_iommu_snp_en = amd_iommu_snp_sup;
+       if (amd_iommu_snp_en)
+               pr_info("SNP enabled\n");
+
+       /* Enforce IOMMU v1 pagetable when SNP is enabled. */
+       if ((amd_iommu_pgtable != AMD_IOMMU_V1) &&
+            amd_iommu_snp_en) {
+               pr_info("Force to using AMD IOMMU v1 page table due to SNP\n");
+               amd_iommu_pgtable = AMD_IOMMU_V1;
+               amd_iommu_ops.pgsize_bitmap = AMD_IOMMU_PGSIZES;
+       }
+
+       return amd_iommu_snp_en;
+}
+EXPORT_SYMBOL_GPL(iommu_sev_snp_supported);

I need to guard this function w/ #ifdef CONFIG_AMD_MEM_ENCRYPT to prevent build 
error when CONFIG_AMD_MEM_ENCRYPT=n.
I will send out v2 to fix this.

Best Regards,
Suravee
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to