linux_dsm_epyc7002/tools
Vitaly Kuznetsov cfb65c15d7 KVM: selftests: fix sync_with_host() in smm_test
It was reported that older GCCs compile smm_test in a way that breaks
it completely:

  kvm_exit:             reason EXIT_CPUID rip 0x4014db info 0 0
  func 7ffffffd idx 830 rax 0 rbx 0 rcx 0 rdx 0, cpuid entry not found
  ...
  kvm_exit:             reason EXIT_MSR rip 0x40abd9 info 0 0
  kvm_msr:              msr_read 487 = 0x0 (#GP)
  ...

Note, '7ffffffd' was supposed to be '80000001' as we're checking for
SVM. Dropping '-O2' from compiler flags help. Turns out, asm block in
sync_with_host() is wrong. We us 'in 0xe, %%al' instruction to sync
with the host and in 'AL' register we actually pass the parameter
(stage) but after sync 'AL' gets written to but GCC thinks the value
is still there and uses it to compute 'EAX' for 'cpuid'.

smm_test can't fully use standard ucall() framework as we need to
write a very simple SMI handler there. Fix the immediate issue by
making RAX input/output operand. While on it, make sync_with_host()
static inline.

Reported-by: Marcelo Bandeira Condotta <mcondotta@redhat.com>
Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Message-Id: <20200610164116.770811-1-vkuznets@redhat.com>
Reviewed-by: Jim Mattson <jmattson@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-06-11 12:35:19 -04:00
..
accounting SPDX patches for 5.7-rc1. 2020-04-03 13:12:26 -07:00
arch ARM: 2020-06-03 15:13:47 -07:00
bootconfig tools/bootconfig: Fix apply_xbc() to return zero on success 2020-05-11 17:00:26 -04:00
bpf tools/bpf: Don't use $(COMPILE.c) 2020-06-02 22:02:38 +02:00
build perf: cs-etm: Update to build with latest opencsd version. 2020-05-05 16:35:32 -03:00
cgroup Merge branch 'block-5.7' into for-5.8/block 2020-05-09 16:13:58 -06:00
debugging
edid
firewire
firmware
gpio This is the bulk of GPIO development for the v5.7 kernel cycle. 2020-04-04 10:27:00 -07:00
hv
iio
include Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-06-03 16:27:18 -07:00
io_uring
kvm/kvm_stat tools/kvm_stat: add sample systemd unit file 2020-04-21 09:13:12 -04:00
laptop change email address for Pali Rohár 2020-04-10 15:36:22 -07:00
leds
lib Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-06-03 16:27:18 -07:00
memory-model
nfsd
objtool objtool: Enable compilation of objtool for all architectures 2020-05-20 09:17:28 -05:00
pci tools: PCI: Add 'e' to clear IRQ 2020-04-02 17:57:10 +01:00
pcmcia
perf perf flamegraph: Use /bin/bash for report and record scripts 2020-05-05 16:35:32 -03:00
power Power management updates for 5.8-rc1 2020-06-02 13:17:23 -07:00
scripts
spi spi: spidev_test: Add support for Octal mode data transfers 2020-04-16 13:54:45 +01:00
testing KVM: selftests: fix sync_with_host() in smm_test 2020-06-11 12:35:19 -04:00
thermal/tmon - Convert tsens configuration DT binding to yaml (Rajeshwari) 2020-04-07 20:00:16 -07:00
time
usb
virtio tools/virtio: make asm/barrier.h self contained 2020-04-17 06:05:29 -04:00
vm tools/vm/page_owner_sort.c: filter out unneeded line 2020-06-03 20:09:49 -07:00
wmi
Makefile