aboutsummaryrefslogtreecommitdiff
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 0d0573c..5d22f7f 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 fadf5f9..525869b 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 6dd8fef..1f34c06 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);
}