summaryrefslogtreecommitdiffstats
path: root/src/mesa/x86/common_x86.c
diff options
context:
space:
mode:
authorMatt Turner <[email protected]>2015-02-28 10:06:26 -0800
committerMatt Turner <[email protected]>2015-02-28 12:20:31 -0800
commite71a7f8013e540281d17a0aa1aaa3a3051592ac8 (patch)
treee1bfb2f2a1e7d125eae13b8eed6f9b17de5a3b87 /src/mesa/x86/common_x86.c
parent5666d9266fd43d552c76ce7b472abc0afde6c32b (diff)
mesa: Check return value of __get_cpuid().
The use of the uninitialized_var() macro was to silence an uninitialized variable warning that I assumed stemmed from gcc being unable to see inside __get_cpuid() or understand its inline assembly. In fact, it was because the __get_cpuid() function can fail, and not initialize its arguments. Instead, check for failure and return early. Reviewed-by: Brian Paul <[email protected]>
Diffstat (limited to 'src/mesa/x86/common_x86.c')
-rw-r--r--src/mesa/x86/common_x86.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/mesa/x86/common_x86.c b/src/mesa/x86/common_x86.c
index 25f5c40e21c..14b497d0612 100644
--- a/src/mesa/x86/common_x86.c
+++ b/src/mesa/x86/common_x86.c
@@ -344,13 +344,13 @@ _mesa_get_x86_features(void)
#elif defined(USE_X86_64_ASM)
{
- unsigned int uninitialized_var(eax), uninitialized_var(ebx),
- uninitialized_var(ecx), uninitialized_var(edx);
+ unsigned int eax, ebx, ecx, edx;
/* Always available on x86-64. */
_mesa_x86_cpu_features |= X86_FEATURE_XMM | X86_FEATURE_XMM2;
- __get_cpuid(1, &eax, &ebx, &ecx, &edx);
+ if (!__get_cpuid(1, &eax, &ebx, &ecx, &edx))
+ return;
if (ecx & bit_SSE4_1)
_mesa_x86_cpu_features |= X86_FEATURE_SSE4_1;