From 3fcb817840fd4bed114d6bbe7275d08310feb797 Mon Sep 17 00:00:00 2001 From: David Marchand Date: Wed, 7 Jun 2023 10:24:40 +0200 Subject: [PATCH] cpu: Fix cpuid check for some AMD processors. Some venerable AMD processors do not support querying extended features (EAX=7) with cpuid. In this case, it is not a programmatic error and the runtime check should simply return the isa is unsupported. Reported-by: Davide Repetto Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=2211747 Fixes: b366fa2f4947 ("dpif-netdev: Call cpuid for x86 isa availability.") Signed-off-by: David Marchand Signed-off-by: Ilya Maximets --- lib/cpu.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/cpu.c b/lib/cpu.c index 0292f715e..fbbea4005 100644 --- a/lib/cpu.c +++ b/lib/cpu.c @@ -37,7 +37,9 @@ static bool x86_has_isa(uint32_t leaf, enum x86_reg reg, uint32_t bit) { uint32_t regs[4]; - ovs_assert(__get_cpuid_max(leaf & X86_LEAF_MASK, NULL) >= leaf); + if (__get_cpuid_max(leaf & X86_LEAF_MASK, NULL) < leaf) { + return false; + } __cpuid_count(leaf, 0, regs[EAX], regs[EBX], regs[ECX], regs[EDX]); return (regs[reg] & ((uint32_t) 1 << bit)) != 0; -- 2.40.1