This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.
Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi, The patch below is a similar change with that for x86 and also fixes a few silly mistakes. Regards, kaz -- 2004-10-21 Kaz Kojima <kkojima@rr.iij4u.or.jp> * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_mutex_timedlock_wait): If woken but cannot get the lock, make sure 2 is stored in the futex and we looked at the old value. Fix a few other problems to return the correct value. diff -uprN ORIG/libc/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S LOCAL/libc/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S --- ORIG/libc/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S Sat Mar 20 15:24:28 2004 +++ LOCAL/libc/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S Thu Oct 21 12:51:15 2004 @@ -127,13 +127,14 @@ __lll_mutex_timedlock_wait: extu.b r3, r3 trapa #0x14 SYSCALL_INST_PAD - mov r0, r4 + mov r0, r5 -8: +8: mov #0, r3 mov #2, r4 CMPXCHG (r3, @r8, r4, r2) - bf 7f + bf/s 7f + mov #0, r0 6: add #8, r15 @@ -144,8 +145,14 @@ __lll_mutex_timedlock_wait: 7: /* Check whether the time expired. */ mov #-ETIMEDOUT, r1 - cmp/eq r4, r1 + cmp/eq r5, r1 bt 5f + + /* Make sure the current holder knows we are going to sleep. */ + XCHG (r2, @r8, r3) + tst r3, r3 + bt/s 6b + mov #0, r0 bra 1b nop 3:
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |