• Ricardo Koller's avatar
    KVM: selftests: Add operand to vmsave/vmload/vmrun in svm.c · 47bc726f
    Ricardo Koller authored
    
    
    Building the KVM selftests with LLVM's integrated assembler fails with:
    
      $ CFLAGS=-fintegrated-as make -C tools/testing/selftests/kvm CC=clang
      lib/x86_64/svm.c:77:16: error: too few operands for instruction
              asm volatile ("vmsave\n\t" : : "a" (vmcb_gpa) : "memory");
                            ^
      <inline asm>:1:2: note: instantiated into assembly here
              vmsave
              ^
      lib/x86_64/svm.c:134:3: error: too few operands for instruction
                      "vmload\n\t"
                      ^
      <inline asm>:1:2: note: instantiated into assembly here
              vmload
              ^
    This is because LLVM IAS does not currently support calling vmsave,
    vmload, or vmload without an explicit %rax operand.
    
    Add an explicit operand to vmsave, vmload, and vmrum in svm.c. Fixing
    this was suggested by Sean Christopherson.
    
    Tested: building without this error in clang 11. The following patch
    (not queued yet) needs to be applied to solve the other remaining error:
    "selftests: kvm: remove reassignment of non-absolute variables".
    Suggested-by: default avatarSean Christopherson <seanjc@google.com>
    Link: https://lore.kernel.org/kvm/X+Df2oQczVBmwEzi@google.com/
    
    Reviewed-by: default avatarJim Mattson <jmattson@google.com>
    Signed-off-by: default avatarRicardo Koller <ricarkol@google.com>
    Message-Id: <20210210031719.769837-1-ricarkol@google.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    47bc726f
svm.c 4.95 KB