about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--nptl/ChangeLog7
-rw-r--r--nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h2
-rw-r--r--nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/mman.h4
-rw-r--r--sysdeps/unix/sysv/linux/i386/bits/mman.h4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/bits/mman.h4
-rw-r--r--sysdeps/unix/sysv/linux/m68k/bits/mman.h4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/mman.h4
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/mman.h4
-rw-r--r--sysdeps/unix/sysv/linux/sh/bits/mman.h4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/mman.h4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/bits/mman.h4
12 files changed, 27 insertions, 20 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 9fcab186c4..f2ca4307f1 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,10 @@
+2006-02-17  Ulrich Drepper  <drepper@redhat.com>
+
+	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
+	(lll_robust_mutex_unlock): Avoid unnecessary wakeups.
+	* sysdeps/unix/sysv/linux/i386/lowlevellock.h
+	(lll_robust_mutex_unlock): Likewise.
+
 2006-02-13  Jakub Jelinek  <jakub@redhat.com>
 
 	* descr.h [!__PTHREAD_MUTEX_HAVE_PREV] (DEQUEUE_MUTEX):
diff --git a/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h b/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h
index f3b97143c4..afdba009a0 100644
--- a/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h
+++ b/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h
@@ -309,7 +309,7 @@ extern int __lll_mutex_unlock_wake (int *__futex)
 			      ".previous\n"				      \
 			      "1:"					      \
 			      : "=m" (futex), "=&a" (ignore)		      \
-			      : "i" (FUTEX_TID_MASK), "m" (futex)	      \
+			      : "i" (FUTEX_WAITERS), "m" (futex)	      \
 			      : "memory"); })
 
 
diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
index f91ce9b8d9..95e6923d4d 100644
--- a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
@@ -275,7 +275,7 @@ extern int __lll_mutex_unlock_wait (int *__futex) attribute_hidden;
 			      ".previous\n"				      \
 			      "2:"					      \
 			      : "=m" (futex), "=&D" (ignore)		      \
-			      : "i" (FUTEX_TID_MASK), "m" (futex)	      \
+			      : "i" (FUTEX_WAITERS), "m" (futex)	      \
 			      : "ax", "cx", "r11", "cc", "memory"); })
 
 
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/mman.h b/sysdeps/unix/sysv/linux/alpha/bits/mman.h
index 869bbede3f..2a84709d20 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/mman.h
@@ -97,8 +97,8 @@
 # define MADV_WILLNEED   3	/* Will need these pages.  */
 # define MADV_DONTNEED   6	/* Don't need these pages.  */
 # define MADV_REMOVE	 7	/* Remove these pages and resources.  */
-# define MADV_DONTFORK	 0x30	/* Do not inherit across fork.  */
-# define MADV_DOFORK	 0x31	/* Do inherit across fork.  */
+# define MADV_DONTFORK	 10	/* Do not inherit across fork.  */
+# define MADV_DOFORK	 11	/* Do inherit across fork.  */
 #endif
 
 /* The POSIX people had to invent similar names for the same things.  */
diff --git a/sysdeps/unix/sysv/linux/i386/bits/mman.h b/sysdeps/unix/sysv/linux/i386/bits/mman.h
index ab3896e8a5..f198fa4b91 100644
--- a/sysdeps/unix/sysv/linux/i386/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/i386/bits/mman.h
@@ -89,8 +89,8 @@
 # define MADV_WILLNEED	 3	/* Will need these pages.  */
 # define MADV_DONTNEED	 4	/* Don't need these pages.  */
 # define MADV_REMOVE	 5	/* Remove these pages and resources.  */
-# define MADV_DONTFORK	 0x30	/* Do not inherit across fork.  */
-# define MADV_DOFORK	 0x31	/* Do inherit across fork.  */
+# define MADV_DONTFORK	 10	/* Do not inherit across fork.  */
+# define MADV_DOFORK	 11	/* Do inherit across fork.  */
 #endif
 
 /* The POSIX people had to invent similar names for the same things.  */
diff --git a/sysdeps/unix/sysv/linux/ia64/bits/mman.h b/sysdeps/unix/sysv/linux/ia64/bits/mman.h
index 4c36467661..86344962af 100644
--- a/sysdeps/unix/sysv/linux/ia64/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/ia64/bits/mman.h
@@ -90,8 +90,8 @@
 # define MADV_WILLNEED	 3	/* Will need these pages.  */
 # define MADV_DONTNEED	 4	/* Don't need these pages.  */
 # define MADV_REMOVE	 5	/* Remove these pages and resources.  */
-# define MADV_DONTFORK	 0x30	/* Do not inherit across fork.  */
-# define MADV_DOFORK	 0x31	/* Do inherit across fork.  */
+# define MADV_DONTFORK	 10	/* Do not inherit across fork.  */
+# define MADV_DOFORK	 11	/* Do inherit across fork.  */
 #endif
 
 /* The POSIX people had to invent similar names for the same things.  */
diff --git a/sysdeps/unix/sysv/linux/m68k/bits/mman.h b/sysdeps/unix/sysv/linux/m68k/bits/mman.h
index 9c66b2e97c..fbec1a03f8 100644
--- a/sysdeps/unix/sysv/linux/m68k/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/m68k/bits/mman.h
@@ -88,8 +88,8 @@
 # define MADV_SEQUENTIAL 2	/* Expect sequential page references.  */
 # define MADV_WILLNEED	 3	/* Will need these pages.  */
 # define MADV_DONTNEED	 4	/* Don't need these pages.  */
-# define MADV_DONTFORK	 0x30	/* Do not inherit across fork.  */
-# define MADV_DOFORK	 0x31	/* Do inherit across fork.  */
+# define MADV_DONTFORK	 10	/* Do not inherit across fork.  */
+# define MADV_DOFORK	 11	/* Do inherit across fork.  */
 #endif
 
 /* The POSIX people had to invent similar names for the same things.  */
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/mman.h b/sysdeps/unix/sysv/linux/powerpc/bits/mman.h
index 052938a0d5..580e93886f 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/mman.h
@@ -90,8 +90,8 @@
 # define MADV_WILLNEED	 3	/* Will need these pages.  */
 # define MADV_DONTNEED	 4	/* Don't need these pages.  */
 # define MADV_REMOVE	 5	/* Remove these pages and resources.  */
-# define MADV_DONTFORK	 0x30	/* Do not inherit across fork.  */
-# define MADV_DOFORK	 0x31	/* Do inherit across fork.  */
+# define MADV_DONTFORK	 10	/* Do not inherit across fork.  */
+# define MADV_DOFORK	 11	/* Do inherit across fork.  */
 #endif
 
 /* The POSIX people had to invent similar names for the same things.  */
diff --git a/sysdeps/unix/sysv/linux/s390/bits/mman.h b/sysdeps/unix/sysv/linux/s390/bits/mman.h
index 94b59be147..f248929824 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/mman.h
@@ -90,8 +90,8 @@
 # define MADV_WILLNEED	 3	/* Will need these pages.  */
 # define MADV_DONTNEED	 4	/* Don't need these pages.  */
 # define MADV_REMOVE	 5	/* Remove these pages and resources.  */
-# define MADV_DONTFORK	 0x30	/* Do not inherit across fork.  */
-# define MADV_DOFORK	 0x31	/* Do inherit across fork.  */
+# define MADV_DONTFORK	 10	/* Do not inherit across fork.  */
+# define MADV_DOFORK	 11	/* Do inherit across fork.  */
 #endif
 
 /* The POSIX people had to invent similar names for the same things.  */
diff --git a/sysdeps/unix/sysv/linux/sh/bits/mman.h b/sysdeps/unix/sysv/linux/sh/bits/mman.h
index ff74c75e14..3c10334a4b 100644
--- a/sysdeps/unix/sysv/linux/sh/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/sh/bits/mman.h
@@ -89,8 +89,8 @@
 # define MADV_WILLNEED	 3	/* Will need these pages.  */
 # define MADV_DONTNEED	 4	/* Don't need these pages.  */
 # define MADV_REMOVE	 5	/* Remove these pages and resources.  */
-# define MADV_DONTFORK	 0x30	/* Do not inherit across fork.  */
-# define MADV_DOFORK	 0x31	/* Do inherit across fork.  */
+# define MADV_DONTFORK	 10	/* Do not inherit across fork.  */
+# define MADV_DOFORK	 11	/* Do inherit across fork.  */
 #endif
 
 /* The POSIX people had to invent similar names for the same things.  */
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/mman.h b/sysdeps/unix/sysv/linux/sparc/bits/mman.h
index 4a7cc83990..8de270f932 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/mman.h
@@ -92,8 +92,8 @@
 # define MADV_DONTNEED	 4	/* Don't need these pages.  */
 # define MADV_FREE	 5	/* Content can be freed (Solaris).  */
 # define MADV_REMOVE	 6	/* Remove these pages and resources.  */
-# define MADV_DONTFORK	 0x30	/* Do not inherit across fork.  */
-# define MADV_DOFORK	 0x31	/* Do inherit across fork.  */
+# define MADV_DONTFORK	 10	/* Do not inherit across fork.  */
+# define MADV_DOFORK	 11	/* Do inherit across fork.  */
 #endif
 
 /* The POSIX people had to invent similar names for the same things.  */
diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/mman.h b/sysdeps/unix/sysv/linux/x86_64/bits/mman.h
index f27f3893b3..8803900552 100644
--- a/sysdeps/unix/sysv/linux/x86_64/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/x86_64/bits/mman.h
@@ -90,8 +90,8 @@
 # define MADV_WILLNEED	 3	/* Will need these pages.  */
 # define MADV_DONTNEED	 4	/* Don't need these pages.  */
 # define MADV_REMOVE	 5	/* Remove these pages and resources.  */
-# define MADV_DONTFORK	 0x30	/* Do not inherit across fork.  */
-# define MADV_DOFORK	 0x31	/* Do inherit across fork.  */
+# define MADV_DONTFORK	 10	/* Do not inherit across fork.  */
+# define MADV_DOFORK	 11	/* Do inherit across fork.  */
 #endif
 
 /* The POSIX people had to invent similar names for the same things.  */