linux/tools/testing/selftests/kvm
Vipin Sharma bf3f115818 KVM: selftests: Check result in hyperv_features for successful hypercalls
Commit cc5851c6be ("KVM: selftests: Use exception fixup for #UD/#GP
Hyper-V MSR/hcall tests") introduced a wrong guest assert in guest_hcall().
It is not checking the successful hypercall results and only checks the
result when a fault happens.

  GUEST_ASSERT_2(!hcall->ud_expected || res == hcall->expect,
                 hcall->expect, res);

Correct the assertion by only checking results of the successful
hypercalls.

This issue was observed when this test started failing after building it
in Clang. Above guest assert statement fails because "res" is not equal
to "hcall->expect" when "hcall->ud_expected" is true. "res" gets some
garbage value in Clang from the RAX register. In GCC, RAX is 0 because
it using RAX for @output_address in the asm statement and resetting it
to 0 before using it as output operand in the same asm statement. Clang
is not using RAX for @output_address.

Fixes: cc5851c6be ("KVM: selftests: Use exception fixup for #UD/#GP Hyper-V MSR/hcall tests")
Signed-off-by: Vipin Sharma <vipinsh@google.com>
Suggested-by: Sean Christopherson <seanjc@google.com>
Reviewed-by: Jim Mattson <jmattson@google.com>
Reviewed-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Link: https://lore.kernel.org/r/20220922062451.2927010-1-vipinsh@google.com
[sean: wrap changelog at ~75 chars, move -EFAULT change to separate patch]
Signed-off-by: Sean Christopherson <seanjc@google.com>
2022-09-28 12:47:19 -07:00
..
aarch64 Merge tag 'kvmarm-5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD 2022-08-01 03:24:12 -04:00
include KVM: selftests: Use uapi header to get VMX and SVM exit reasons/codes 2022-09-26 12:03:12 -04:00
lib selftests: kvm: set rax before vmcall 2022-08-01 08:43:05 -04:00
s390x KVM: selftests: Fix filename reporting in guest asserts 2022-07-13 18:14:08 -07:00
x86_64 KVM: selftests: Check result in hyperv_features for successful hypercalls 2022-09-28 12:47:19 -07:00
.gitignore KVM: selftests: Add an x86-only test to verify nested exception queueing 2022-09-26 12:03:12 -04:00
access_tracking_perf_test.c KVM: selftests: Add TEST_REQUIRE macros to reduce skipping copy+paste 2022-06-11 11:47:29 -04:00
config selftests: kvm: Adding config fragments 2019-08-09 16:52:38 +02:00
demand_paging_test.c KVM: selftests: Purge vm+vcpu_id == vcpu silliness 2022-06-11 11:47:22 -04:00
dirty_log_perf_test.c KVM: selftests: Add an option to run vCPUs while disabling dirty logging 2022-07-28 13:22:24 -04:00
dirty_log_test.c KVM: selftests: Add kvm_has_cap() to provide syntactic sugar 2022-06-11 11:47:28 -04:00
hardware_disable_test.c KVM: selftests: Move per-VM/per-vCPU nr pages calculation to __vm_create() 2022-06-11 11:47:26 -04:00
kvm_binary_stats_test.c selftests: KVM: Add exponent check for boolean stats 2022-08-01 08:01:23 -04:00
kvm_create_max_vcpus.c KVM: selftests: Add TEST_REQUIRE macros to reduce skipping copy+paste 2022-06-11 11:47:29 -04:00
kvm_page_table_test.c KVM: selftests: Drop @num_percpu_pages from __vm_create_with_vcpus() 2022-06-11 11:47:25 -04:00
Makefile KVM: selftests: Add an x86-only test to verify nested exception queueing 2022-09-26 12:03:12 -04:00
max_guest_memory_test.c KVM: selftests: Open code and drop 'struct kvm_vm' accessors 2022-06-11 11:47:24 -04:00
memslot_modification_stress_test.c KVM: selftests: Open code and drop 'struct kvm_vm' accessors 2022-06-11 11:47:24 -04:00
memslot_perf_test.c KVM: selftests: Fix filename reporting in guest asserts 2022-07-13 18:14:08 -07:00
rseq_test.c KVM: selftests: Use getcpu() instead of sched_getcpu() in rseq_test 2022-08-10 15:08:29 -04:00
set_memory_region_test.c KVM: selftests: Fix filename reporting in guest asserts 2022-07-13 18:14:08 -07:00
settings selftests: kvm: Raise the default timeout to 120 seconds 2021-02-09 08:17:08 -05:00
steal_time.c KVM: selftests: Use kvm_cpu_has() for KVM's PV steal time 2022-07-13 18:14:13 -07:00
system_counter_offset_test.c KVM: selftests: Fix filename reporting in guest asserts 2022-07-13 18:14:08 -07:00