From 9554ebf2d4da22591e974d3cf2ed09a2b8dbdbd8 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 12 Dec 2009 11:06:23 -0800 Subject: [PATCH] Invalid timeouts in i386 sem_timedwait. We adjusted nwaiters even though this isn't necessary. --- nptl/ChangeLog | 5 +++++ nptl/sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S | 18 +++++++++--------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 494b590..3d9a60a 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,8 @@ +2009-12-12 Ulrich Drepper + + * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait): + Don't update nwaiters after invalid timeout is recognized. + 2009-11-27 Thomas Schwinge * sysdeps/unix/sysv/linux/sh/pt-initfini.c (_init): Don't call diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S index 13a36d6..18013a8 100644 --- a/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S +++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc. +/* Copyright (C) 2002, 2003, 2004, 2005, 2007, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2002. @@ -131,10 +131,10 @@ sem_timedwait: xorl %eax, %eax -10: LOCK + LOCK decl NWAITERS(%ebx) - addl $12, %esp +10: addl $12, %esp .Ladd_esp: popl %ebx .Lpop_ebx: @@ -268,19 +268,19 @@ sem_wait_cleanup: .byte 14 # DW_CFA_def_cfa_offset .uleb128 8 .byte 0x86 # DW_CFA_offset %esi - .uleb128 2 + .uleb128 2 .byte 4 # DW_CFA_advance_loc4 .long .Lpush_edi-.Lpush_esi .byte 14 # DW_CFA_def_cfa_offset .uleb128 12 .byte 0x87 # DW_CFA_offset %edi - .uleb128 3 + .uleb128 3 .byte 4 # DW_CFA_advance_loc4 .long .Lpush_ebx-.Lpush_edi .byte 14 # DW_CFA_def_cfa_offset .uleb128 16 .byte 0x83 # DW_CFA_offset %ebx - .uleb128 4 + .uleb128 4 .byte 4 # DW_CFA_advance_loc4 .long .Lsub_esp-.Lpush_ebx .byte 14 # DW_CFA_def_cfa_offset @@ -309,11 +309,11 @@ sem_wait_cleanup: .byte 14 # DW_CFA_def_cfa_offset .uleb128 28 .byte 0x86 # DW_CFA_offset %esi - .uleb128 2 + .uleb128 2 .byte 0x87 # DW_CFA_offset %edi - .uleb128 3 + .uleb128 3 .byte 0x83 # DW_CFA_offset %ebx - .uleb128 4 + .uleb128 4 .align 4 .LENDFDE: -- 2.7.4