about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--nptl/ChangeLog6
-rw-r--r--nptl/sysdeps/unix/sysv/linux/ia64/lowlevellock.h11
-rw-r--r--nptl/tst-rwlock7.c2
3 files changed, 17 insertions, 2 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 0d0573cc0f..5d22f7f525 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,5 +1,11 @@
 2003-05-29  Ulrich Drepper  <drepper@redhat.com>
 
+	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h
+	(__lll_mutex_unlock_force): New function.
+	(lll_mutex_unlock_force): Use __lll_mutex_unlock_force.
+
+	* tst-rwlock7.c (do_test): Use correct format specifier.
+
 	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_requeue):
 	Find break parameter in correct asm argument.
 
diff --git a/nptl/sysdeps/unix/sysv/linux/ia64/lowlevellock.h b/nptl/sysdeps/unix/sysv/linux/ia64/lowlevellock.h
index fadf5f96ad..525869b302 100644
--- a/nptl/sysdeps/unix/sysv/linux/ia64/lowlevellock.h
+++ b/nptl/sysdeps/unix/sysv/linux/ia64/lowlevellock.h
@@ -179,8 +179,17 @@ __lll_mutex_unlock (int *futex)
 #define lll_mutex_unlock(futex) \
   __lll_mutex_unlock(&(futex))
 
+
+static inline void
+__attribute__ ((always_inline))
+__lll_mutex_unlock_force (int *futex)
+{
+  (void) atomic_exchange_rel (futex, 0);
+  lll_futex_wake (futex, 1);
+}
 #define lll_mutex_unlock_force(futex) \
-  lll_futex_wake (&(futex), 1)
+  __lll_mutex_unlock_force(&(futex))
+
 
 #define lll_mutex_islocked(futex) \
   (futex != 0)
diff --git a/nptl/tst-rwlock7.c b/nptl/tst-rwlock7.c
index 6dd8fef5a7..1f34c06505 100644
--- a/nptl/tst-rwlock7.c
+++ b/nptl/tst-rwlock7.c
@@ -161,7 +161,7 @@ do_test (void)
 	}
       if (status != NULL)
 	{
-	  printf ("failure in round %d\n", cnt);
+	  printf ("failure in round %Zu\n", cnt);
 	  exit (1);
 	}