On Thu, Apr 9, 2020 at 10:33 AM Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote: > > On 09/04/20 10:20, Uros Bizjak wrote: > > Current mainline kernel fails to build (on Fedora 31) with: > > > > GEN .version > > CHK include/generated/compile.h > > LD vmlinux.o > > MODPOST vmlinux.o > > MODINFO modules.builtin.modinfo > > GEN modules.builtin > > LD .tmp_vmlinux.btf > > ld: arch/x86/kvm/svm/sev.o: in function `sev_flush_asids': > > /hdd/uros/git/linux/arch/x86/kvm/svm/sev.c:48: undefined reference to > > `sev_guest_df_flush' > > ld: arch/x86/kvm/svm/sev.o: in function `sev_hardware_setup': > > /hdd/uros/git/linux/arch/x86/kvm/svm/sev.c:1146: undefined reference > > to `sev_platform_status' > > BTF .btf.vmlinux.bin.o > > Strange, the functions are defined and exported with > CONFIG_CRYPTO_DEV_SP_PSP, which is "y" in your config. The problem is with CONFIG_CRYPTO_DEV_CCP_DD=m in combination with CONFIG_KVM_AMD=y in arch/x86/kvmKconfig, there is: --cut here-- config KVM_AMD_SEV def_bool y bool "AMD Secure Encrypted Virtualization (SEV) support" depends on KVM_AMD && X86_64 depends on CRYPTO_DEV_SP_PSP && !(KVM_AMD=y && CRYPTO_DEV_CCP_DD=m) ---help--- Provides support for launching Encrypted VMs on AMD processors. --cut here-- which doesn't disable the compilation of sev.o. The missing functions are actually in ccp.o *module*, called from built-in functions of sev.o Enabling CRYPTO_DEV_CCP_DD=y as a built-in instead of a module fixes the build. Uros.