leaf["eax"] & eax > 0 check works correctly only if there's at most
1
bit set in eax. Luckily that's been always the case, but fixing this
could save us from future surprises.
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
---
tests/cputestdata/cpu-cpuid.py | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/tests/cputestdata/cpu-cpuid.py b/tests/cputestdata/cpu-cpuid.py
index 866c8047cd..0a2710689d 100755
--- a/tests/cputestdata/cpu-cpuid.py
+++ b/tests/cputestdata/cpu-cpuid.py
@@ -15,12 +15,12 @@ def checkFeature(cpuid, feature):
if in_eax not in cpuid or in_ecx not in cpuid[in_eax]:
return False
- else:
- leaf = cpuid[in_eax][in_ecx]
- return ((eax > 0 and leaf["eax"] & eax > 0) or
- (ebx > 0 and leaf["ebx"] & ebx > 0) or
- (ecx > 0 and leaf["ecx"] & ecx > 0) or
- (edx > 0 and leaf["edx"] & edx > 0))
+
+ leaf = cpuid[in_eax][in_ecx]
+ return ((eax > 0 and leaf["eax"] & eax == eax) or
+ (ebx > 0 and leaf["ebx"] & ebx == ebx) or
+ (ecx > 0 and leaf["ecx"] & ecx == ecx) or
+ (edx > 0 and leaf["edx"] & edx == edx))
def addFeature(cpuid, feature):
--
2.21.0