cputest: Fix comparison in checkCPUIDFeature in cpu-cpuid.py

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@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Jiri Denemark 2019-04-01 18:26:38 +02:00
parent a7ad56edd9
commit 77f1fbaed8
1 changed files with 6 additions and 6 deletions

View File

@ -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):