From: Ashish Kalra <ashish.kalra@xxxxxxx> This patch-set fixes the current SNP host enabling code and effectively SNP which is broken with respect to the KVM module being built-in. Essentially SNP host enabling code should be invoked before KVM initialization, which is currently not the case when KVM is built-in. SNP host support is enabled in snp_rmptable_init() which is invoked as a device_initcall(). Here device_initcall() is used as snp_rmptable_init() expects AMD IOMMU SNP support to be enabled prior to it and the AMD IOMMU driver enables SNP support after PCI bus enumeration. The first pre-patch in this patch-set is the AMD IOMMU driver patch which moves SNP enable check before enabling IOMMUs. With this patch applied, the final patch in this patch-set calls snp_rmptable_init() early with subsys_initcall() which then enables SNP host support before KVM initialization with kvm_amd module built-in. The other two pre-patches in the patch-set ensure that the dependent PSP SEV driver is initialized before KVM module if KVM module is built-in. Fixes: c3b86e61b756 ("x86/cpufeatures: Enable/unmask SEV-SNP CPU feature") Ashish Kalra (1): x86/sev: Fix broken SNP support with KVM module built-in Sean Christopherson (2): crypto: ccp: Add external API interface for PSP module initialization KVM: SVM: Ensure PSP module initialized before built-in KVM module Vasant Hegde (1): iommu/amd: Check SNP support before enabling IOMMU arch/x86/kvm/svm/sev.c | 10 ++++++++++ arch/x86/virt/svm/sev.c | 2 +- drivers/crypto/ccp/sp-dev.c | 12 ++++++++++++ drivers/crypto/ccp/sp-dev.h | 1 + drivers/iommu/amd/init.c | 3 ++- include/linux/psp-sev.h | 11 +++++++++++ 6 files changed, 37 insertions(+), 2 deletions(-) -- 2.34.1