]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
KVM: selftests: Fix a condition in test_hv_cpuid()
authorDan Carpenter <dan.carpenter@oracle.com>
Tue, 14 May 2019 10:34:51 +0000 (13:34 +0300)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 24 May 2019 19:27:04 +0000 (21:27 +0200)
The code is trying to check that all the padding is zeroed out and it
does this:

    entry->padding[0] == entry->padding[1] == entry->padding[2] == 0

Assume everything is zeroed correctly, then the first comparison is
true, the next comparison is false and false is equal to zero so the
overall condition is true.  This bug doesn't affect run time very
badly, but the code should instead just check that all three paddings
are zero individually.

Also the error message was copy and pasted from an earlier error and it
wasn't correct.

Fixes: 7edcb7343327 ("KVM: selftests: Add hyperv_cpuid test")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
tools/testing/selftests/kvm/x86_64/hyperv_cpuid.c

index 9a21e912097c4c41d66873af36160389b8b81956..63b9fc3fdfbe1b456e20bc237ad36c09ab40f0f2 100644 (file)
@@ -58,9 +58,8 @@ static void test_hv_cpuid(struct kvm_cpuid2 *hv_cpuid_entries,
                TEST_ASSERT(entry->flags == 0,
                            ".flags field should be zero");
 
-               TEST_ASSERT(entry->padding[0] == entry->padding[1]
-                           == entry->padding[2] == 0,
-                           ".index field should be zero");
+               TEST_ASSERT(!entry->padding[0] && !entry->padding[1] &&
+                           !entry->padding[2], "padding should be zero");
 
                /*
                 * If needed for debug: