From: Richard Henderson Date: Sat, 13 Mar 2004 05:29:24 +0000 (+0000) Subject: * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Propagate oldvalue... X-Git-Tag: cvs/fedora-base~669 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=841153fa02afb1e115bfc3dd504c2ee7354c1f56;p=thirdparty%2Fglibc.git * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Propagate oldvalue from CENABLE to CDISABLE. 2004-03-12 Richard Henderson * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Propagate oldvalue from CENABLE to CDISABLE. --- diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 755d6fee3d2..91b8205366a 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,8 @@ +2004-03-12 Richard Henderson + + * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Propagate + oldvalue from CENABLE to CDISABLE. + 2004-03-12 Ulrich Drepper * sysdeps/unix/sysv/linux/bits/local_lim.h: Define HOST_NAME_MAX. diff --git a/nptl/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h b/nptl/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h index 3b08b22c1a8..794d7fc4420 100644 --- a/nptl/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h +++ b/nptl/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h @@ -63,9 +63,14 @@ __LABEL($pseudo_cancel) \ SAVE_ARGS_##args; \ CENABLE; \ LOAD_ARGS_##args; \ + /* Save the CENABLE return value in RA. That register \ + is preserved across syscall and the real return \ + address is saved on the stack. */ \ + mov v0, ra; \ lda v0, SYS_ify(syscall_name); \ call_pal PAL_callsys; \ stq v0, 8(sp); \ + mov ra, a0; \ bne a3, $multi_error; \ CDISABLE; \ ldq ra, 0(sp); \