about summary refs log tree commit diff
path: root/nptl
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2006-02-08 15:33:47 +0000
committerUlrich Drepper <drepper@redhat.com>2006-02-08 15:33:47 +0000
commitb576fca12abea4bb0b5af097ce4dd3ff7717d821 (patch)
tree9b673267d59f68b61f032a84c5a2a31cb2147521 /nptl
parentbecac6c5b1104415cd76ea02ec01a4c55fb15e55 (diff)
downloadglibc-b576fca12abea4bb0b5af097ce4dd3ff7717d821.tar.gz
glibc-b576fca12abea4bb0b5af097ce4dd3ff7717d821.tar.xz
glibc-b576fca12abea4bb0b5af097ce4dd3ff7717d821.zip
* sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait,
	lll_futex_timedwait, lll_wait_tid): Add "memory" clobber.
Diffstat (limited to 'nptl')
-rw-r--r--nptl/ChangeLog5
-rw-r--r--nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h9
2 files changed, 11 insertions, 3 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 54e7ff46a6..bb8e60707e 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,8 @@
+2006-02-08  Jakub Jelinek  <jakub@redhat.com>
+
+	* sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait,
+	lll_futex_timedwait, lll_wait_tid): Add "memory" clobber.
+
 2006-01-20  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
 
 	* sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_futex_wait):
diff --git a/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h b/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h
index fd1ee4569d..b233d9747f 100644
--- a/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h
+++ b/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h
@@ -75,7 +75,8 @@
 		      : "=a" (__status)					      \
 		      : "0" (SYS_futex), LLL_EBX_REG (futex), "S" (0),	      \
 			"c" (FUTEX_WAIT), "d" (_val),			      \
-			"i" (offsetof (tcbhead_t, sysinfo)));		      \
+			"i" (offsetof (tcbhead_t, sysinfo))		      \
+		      : "memory");					      \
     __status;								      \
   })
 
@@ -90,7 +91,8 @@
 		      : "=a" (__status)					      \
 		      : "0" (SYS_futex), LLL_EBX_REG (futex), "S" (timeout),  \
 			"c" (FUTEX_WAIT), "d" (_val),			      \
-			"i" (offsetof (tcbhead_t, sysinfo)));		      \
+			"i" (offsetof (tcbhead_t, sysinfo))		      \
+		      : "memory");					      \
     __status;								      \
   })
 
@@ -346,7 +348,8 @@ extern int lll_unlock_wake_cb (int *__futex) attribute_hidden;
 			: "=&a" (__ignore)				      \
 			: "i" (SYS_futex), LLL_EBX_REG (&tid), "S" (0),	      \
 			  "c" (FUTEX_WAIT), "d" (_tid),			      \
-			  "i" (offsetof (tcbhead_t, sysinfo)));		      \
+			  "i" (offsetof (tcbhead_t, sysinfo))		      \
+			: "memory");					      \
   } while (0)
 
 extern int __lll_timedwait_tid (int *tid, const struct timespec *abstime)