lkml.org 
[lkml]   [2022]   [Aug]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 354/545] selftests: kvm: set rax before vmcall
    Date
    From: Andrei Vagin <avagin@google.com>

    [ Upstream commit 281106f938d3daaea6f8b6723a8217a2a1ef6936 ]

    kvm_hypercall has to place the hypercall number in rax.

    Trace events show that kvm_pv_test doesn't work properly:
    kvm_pv_test-53132: kvm_hypercall: nr 0x0 a0 0x0 a1 0x0 a2 0x0 a3 0x0
    kvm_pv_test-53132: kvm_hypercall: nr 0x0 a0 0x0 a1 0x0 a2 0x0 a3 0x0
    kvm_pv_test-53132: kvm_hypercall: nr 0x0 a0 0x0 a1 0x0 a2 0x0 a3 0x0

    With this change, it starts working as expected:
    kvm_pv_test-54285: kvm_hypercall: nr 0x5 a0 0x0 a1 0x0 a2 0x0 a3 0x0
    kvm_pv_test-54285: kvm_hypercall: nr 0xa a0 0x0 a1 0x0 a2 0x0 a3 0x0
    kvm_pv_test-54285: kvm_hypercall: nr 0xb a0 0x0 a1 0x0 a2 0x0 a3 0x0

    Signed-off-by: Andrei Vagin <avagin@google.com>
    Message-Id: <20220722230241.1944655-5-avagin@google.com>
    Fixes: ac4a4d6de22e ("selftests: kvm: test enforcement of paravirtual cpuid features")
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    tools/testing/selftests/kvm/lib/x86_64/processor.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/tools/testing/selftests/kvm/lib/x86_64/processor.c b/tools/testing/selftests/kvm/lib/x86_64/processor.c
    index d10c5c05bdf0..f5d2d27bee05 100644
    --- a/tools/testing/selftests/kvm/lib/x86_64/processor.c
    +++ b/tools/testing/selftests/kvm/lib/x86_64/processor.c
    @@ -1253,6 +1253,6 @@ uint64_t kvm_hypercall(uint64_t nr, uint64_t a0, uint64_t a1, uint64_t a2,

    asm volatile("vmcall"
    : "=a"(r)
    - : "b"(a0), "c"(a1), "d"(a2), "S"(a3));
    + : "a"(nr), "b"(a0), "c"(a1), "d"(a2), "S"(a3));
    return r;
    }
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-08-19 18:29    [W:2.269 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site