diff options
author | Thomas Schwinge <thomas@codesourcery.com> | 2012-03-08 10:45:05 +0100 |
---|---|---|
committer | Thomas Schwinge <thomas@codesourcery.com> | 2012-03-08 10:45:05 +0100 |
commit | c564a81246d0064eb12bc34cac8996709a0ecbfc (patch) | |
tree | 5558f62e61462549cdabd738adda10e22126949a | |
parent | 48aff7765b16851c4c3c5b7beb44c878d0d24ae8 (diff) | |
download | glibc-c564a81246d0064eb12bc34cac8996709a0ecbfc.tar glibc-c564a81246d0064eb12bc34cac8996709a0ecbfc.tar.gz glibc-c564a81246d0064eb12bc34cac8996709a0ecbfc.tar.bz2 glibc-c564a81246d0064eb12bc34cac8996709a0ecbfc.zip |
Invalid timeouts in SH sem_timedwait.
We adjusted nwaiters even though this isn't necessary.
-rw-r--r-- | nptl/ChangeLog | 3 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/sh/sem_timedwait.S | 9 |
2 files changed, 8 insertions, 4 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 6cf6b3fed9..cd70329abb 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,5 +1,8 @@ 2012-03-08 Thomas Schwinge <thomas@codesourcery.com> + * sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait): Fix + updating nwaiters. + * tst-sem13.c (do_test): Add another test case. * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait): Fix updating nwaiters. diff --git a/nptl/sysdeps/unix/sysv/linux/sh/sem_timedwait.S b/nptl/sysdeps/unix/sysv/linux/sh/sem_timedwait.S index d47362fc68..c26e5aa4cb 100644 --- a/nptl/sysdeps/unix/sysv/linux/sh/sem_timedwait.S +++ b/nptl/sysdeps/unix/sysv/linux/sh/sem_timedwait.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2003, 2004, 2007, 2011 Free Software Foundation, Inc. +/* Copyright (C) 2003-2012 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -69,8 +69,8 @@ sem_timedwait: mov.l @(4,r9), r0 mov.l .L1g, r1 cmp/hs r1, r0 - bt/s 6f - mov #EINVAL, r0 + bt/s .Lerrno_exit + mov #EINVAL, r10 INC (@(NWAITERS,r8),r2) 7: @@ -168,6 +168,8 @@ sem_timedwait: neg r0, r0 6: mov r0, r10 + DEC (@(NWAITERS,r8), r2) +.Lerrno_exit: mova .Lgot2, r0 mov.l .Lgot2, r12 add r0, r12 @@ -182,7 +184,6 @@ sem_timedwait: .long errno@GOTTPOFF .Lexit: mov.l r10, @r0 - DEC (@(NWAITERS,r8), r2) bra 10b mov #-1, r0 |