Mesa (10.4): gallium/util: fix crash with daz detection on x86

Emil Velikov evelikov at kemper.freedesktop.org
Mon Jan 12 08:43:01 UTC 2015


Module: Mesa
Branch: 10.4
Commit: ac3ca98a1bca8d00f7ebc8c656d67909b820ac70
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ac3ca98a1bca8d00f7ebc8c656d67909b820ac70

Author: Roland Scheidegger <sroland at vmware.com>
Date:   Wed Dec 31 17:39:57 2014 +0100

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" <mesa-stable at lists.freedesktop.org>
(cherry picked from commit b59c7ed0ab1ac5b6d9f8d409f1a90401ab7775b6)

---

 src/gallium/auxiliary/util/u_cpu_detect.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

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];




More information about the mesa-commit mailing list