diff options
author | Nathan Chancellor <nathan@kernel.org> | 2024-02-02 16:53:21 -0700 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2024-02-06 03:56:04 -0500 |
commit | e459647710070684a48384d67742822379de8c1c (patch) | |
tree | 6d330f991eaa22eb36bcf63789bec0aa1966e641 /drivers/platform/x86/amd/pmf/spc.c | |
parent | a9ef277488cfc1b7da88235dc11c338a14f34835 (diff) | |
download | linux-e459647710070684a48384d67742822379de8c1c.tar.gz linux-e459647710070684a48384d67742822379de8c1c.tar.bz2 linux-e459647710070684a48384d67742822379de8c1c.zip |
x86/coco: Define cc_vendor without CONFIG_ARCH_HAS_CC_PLATFORM
After commit a9ef277488cf ("x86/kvm: Fix SEV check in
sev_map_percpu_data()"), there is a build error when building
x86_64_defconfig with GCOV using LLVM:
ld.lld: error: undefined symbol: cc_vendor
>>> referenced by kvm.c
>>> arch/x86/kernel/kvm.o:(kvm_smp_prepare_boot_cpu) in archive vmlinux.a
which corresponds to
if (cc_vendor != CC_VENDOR_AMD ||
!cc_platform_has(CC_ATTR_GUEST_MEM_ENCRYPT))
return;
Without GCOV, clang is able to eliminate the use of cc_vendor because
cc_platform_has() evaluates to false when CONFIG_ARCH_HAS_CC_PLATFORM is
not set, meaning that if statement will be true no matter what value
cc_vendor has.
With GCOV, the instrumentation keeps the use of cc_vendor around for
code coverage purposes but cc_vendor is only declared, not defined,
without CONFIG_ARCH_HAS_CC_PLATFORM, leading to the build error above.
Provide a macro definition of cc_vendor when CONFIG_ARCH_HAS_CC_PLATFORM
is not set with a value of CC_VENDOR_NONE, so that the first condition
can always be evaluated/eliminated at compile time, avoiding the build
error altogether. This is very similar to the situation prior to
commit da86eb961184 ("x86/coco: Get rid of accessor functions").
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Acked-by: Borislav Petkov (AMD) <bp@alien8.de>
Message-Id: <20240202-provide-cc_vendor-without-arch_has_cc_platform-v1-1-09ad5f2a3099@kernel.org>
Fixes: a9ef277488cf ("x86/kvm: Fix SEV check in sev_map_percpu_data()", 2024-01-31)
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'drivers/platform/x86/amd/pmf/spc.c')
0 files changed, 0 insertions, 0 deletions