Re: [PATCH] KVM: selftests: Fix hyperv_features test failure when built on Clang

From: Jim Mattson
Date: Wed Sep 21 2022 - 19:32:39 EST


On Wed, Sep 21, 2022 at 4:11 PM Vipin Sharma <vipinsh@xxxxxxxxxx> wrote:
>
> hyperv_features test fails when built on Clang. It throws error:
>
> Failed guest assert: !hcall->ud_expected || res == hcall->expect at
> x86_64/hyperv_features.c:90
>
> On GCC, EAX is set to 0 before the hypercall whereas in Clang it is not,
> this causes EAX to have garbage value when hypercall is returned in Clang
> binary.
>
> Fix by executing the guest assertion only when ud_expected is false.
>
> Fixes: cc5851c6be86 ("KVM: selftests: Use exception fixup for #UD/#GP Hyper-V MSR/hcall tests")
> Signed-off-by: Vipin Sharma <vipinsh@xxxxxxxxxx>
> Suggested-by: Sean Christopherson <seanjc@xxxxxxxxxx>
>
> ---
> tools/testing/selftests/kvm/x86_64/hyperv_features.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)

In case Sean doesn't point it out, be wary of starting a shortlog with
"Fix." You may later regret it.

Also, I think the "clang" part is a red herring. You are fixing a
latent bug in the code.

Reviewed-by: Jim Mattson <jmattson@xxxxxxxxxx>