1
0
Fork 0
alistair23-linux/tools/testing/selftests/kvm
Vitaly Kuznetsov 90a48843a1 KVM: selftests: fix ucall on x86
After commit e8bb4755eea2("KVM: selftests: Split ucall.c into architecture
specific files") selftests which use ucall on x86 started segfaulting and
apparently it's gcc to blame: it "optimizes" ucall() function throwing away
va_start/va_end part because it thinks the structure is not being used.
Previously, it couldn't do that because the there was also MMIO version and
the decision which particular implementation to use was done at runtime.

With older gccs it's possible to solve the problem by adding 'volatile'
to 'struct ucall' but at least with gcc-8.3 this trick doesn't work.

'memory' clobber seems to do the job.

Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2019-09-25 15:15:03 +02:00
..
include KVM: selftests: Remove duplicate guest mode handling 2019-09-24 13:37:24 +02:00
lib KVM: selftests: fix ucall on x86 2019-09-25 15:15:03 +02:00
s390x KVM: selftests: Test invalid bits in kvm_valid_regs and kvm_dirty_regs on s390x 2019-09-04 15:38:05 +02:00
x86_64 KVM: selftests: hyperv_cpuid: add check for NoNonArchitecturalCoreSharing bit 2019-09-24 13:37:31 +02:00
.gitignore KVM: selftests: Update gitignore file for latest changes 2019-08-09 16:50:09 +02:00
Makefile KVM: selftests: Add a test for the KVM_S390_MEM_OP ioctl 2019-08-29 16:09:11 +02:00
clear_dirty_log_test.c kvm: introduce manual dirty log reprotect 2018-12-14 12:34:19 +01:00
config selftests: kvm: Adding config fragments 2019-08-09 16:52:38 +02:00
dirty_log_test.c KVM: selftests: Remove duplicate guest mode handling 2019-09-24 13:37:24 +02:00
kvm_create_max_vcpus.c KVM: s390: add kselftests 2019-07-15 13:28:58 +02:00