From: Roland Scheidegger Date: Wed, 31 Dec 2014 16:39:57 +0000 (+0100) Subject: gallium/util: fix crash with daz detection on x86 X-Git-Tag: upstream/17.1.0~21736 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b59c7ed0ab1ac5b6d9f8d409f1a90401ab7775b6;p=platform%2Fupstream%2Fmesa.git gallium/util: fix crash with daz detection on x86 The code used PIPE_ALIGN_VAR for the variable used by fxsave, however this does not work if the stack isn't aligned. Hence use PIPE_ALIGN_STACK function decoration to fix the segfault which can happen if stack alignment is only 4 bytes. This fixes https://bugs.freedesktop.org/show_bug.cgi?id=87658. Cc: "10.4" --- diff --git a/src/gallium/auxiliary/util/u_cpu_detect.c b/src/gallium/auxiliary/util/u_cpu_detect.c index 5d9db59..28197f4 100644 --- a/src/gallium/auxiliary/util/u_cpu_detect.c +++ b/src/gallium/auxiliary/util/u_cpu_detect.c @@ -272,7 +272,7 @@ static INLINE uint64_t xgetbv(void) #if defined(PIPE_ARCH_X86) -static INLINE boolean sse2_has_daz(void) +PIPE_ALIGN_STACK static INLINE boolean sse2_has_daz(void) { struct { uint32_t pad1[7];