Skip the AMD SEV test if SEV is unsupported, as KVM-Unit-Tests typically don't report failures if feature is missing. Opportunistically use amd_sev_enabled() instead of duplicating all of its functionality. Signed-off-by: Sean Christopherson <seanjc@xxxxxxxxxx> --- x86/amd_sev.c | 51 +++++++-------------------------------------------- 1 file changed, 7 insertions(+), 44 deletions(-) diff --git a/x86/amd_sev.c b/x86/amd_sev.c index 7757d4f8..4ec45543 100644 --- a/x86/amd_sev.c +++ b/x86/amd_sev.c @@ -15,51 +15,10 @@ #include "x86/amd_sev.h" #include "msr.h" -#define EXIT_SUCCESS 0 -#define EXIT_FAILURE 1 - #define TESTDEV_IO_PORT 0xe0 static char st1[] = "abcdefghijklmnop"; -static int test_sev_activation(void) -{ - struct cpuid cpuid_out; - u64 msr_out; - - printf("SEV activation test is loaded.\n"); - - /* Tests if CPUID function to check SEV is implemented */ - cpuid_out = cpuid(CPUID_FN_LARGEST_EXT_FUNC_NUM); - printf("CPUID Fn8000_0000[EAX]: 0x%08x\n", cpuid_out.a); - if (cpuid_out.a < CPUID_FN_ENCRYPT_MEM_CAPAB) { - printf("CPUID does not support FN%08x\n", - CPUID_FN_ENCRYPT_MEM_CAPAB); - return EXIT_FAILURE; - } - - /* Tests if SEV is supported */ - cpuid_out = cpuid(CPUID_FN_ENCRYPT_MEM_CAPAB); - printf("CPUID Fn8000_001F[EAX]: 0x%08x\n", cpuid_out.a); - printf("CPUID Fn8000_001F[EBX]: 0x%08x\n", cpuid_out.b); - if (!(cpuid_out.a & SEV_SUPPORT_MASK)) { - printf("SEV is not supported.\n"); - return EXIT_FAILURE; - } - printf("SEV is supported\n"); - - /* Tests if SEV is enabled */ - msr_out = rdmsr(MSR_SEV_STATUS); - printf("MSR C001_0131[EAX]: 0x%08lx\n", msr_out & 0xffffffff); - if (!(msr_out & SEV_ENABLED_MASK)) { - printf("SEV is not enabled.\n"); - return EXIT_FAILURE; - } - printf("SEV is enabled\n"); - - return EXIT_SUCCESS; -} - static void test_sev_es_activation(void) { if (rdmsr(MSR_SEV_STATUS) & SEV_ES_ENABLED_MASK) { @@ -88,10 +47,14 @@ static void test_stringio(void) int main(void) { - int rtn; - rtn = test_sev_activation(); - report(rtn == EXIT_SUCCESS, "SEV activation test."); + if (!amd_sev_enabled()) { + report_skip("AMD SEV not enabled\n"); + goto out; + } + test_sev_es_activation(); test_stringio(); + +out: return report_summary(); } -- 2.50.0.rc0.642.g800a2b2222-goog