diff options
author | Stefan Liebler <stli@linux.vnet.ibm.com> | 2015-03-12 11:08:11 +0100 |
---|---|---|
committer | Andreas Krebbel <krebbel@linux.vnet.ibm.com> | 2015-03-12 11:08:11 +0100 |
commit | 2e807f29595eb5b1e5d0decc6e356a3562ecc58e (patch) | |
tree | 15eeb8b9e77df5ae6b54b7624caafbdf183b20b1 /sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S | |
parent | 1b2bebe6b70a9f7e133f143f7f7506cc28df03cf (diff) | |
download | glibc-2e807f29595eb5b1e5d0decc6e356a3562ecc58e.zip glibc-2e807f29595eb5b1e5d0decc6e356a3562ecc58e.tar.gz glibc-2e807f29595eb5b1e5d0decc6e356a3562ecc58e.tar.bz2 |
S/390: Fix setcontext/swapcontext which are not restoring sigmask.
Diffstat (limited to 'sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S')
-rw-r--r-- | sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S b/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S index c40f465..ac6568b 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S +++ b/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S @@ -24,7 +24,7 @@ /* __swapcontext (ucontext_t *oucp, const ucontext_t *ucp) Saves the machine context in oucp such that when it is activated, - it appears as if __swapcontextt() returned again, restores the + it appears as if __swapcontext() returned again, restores the machine context in ucp and thereby resumes execution in that context. @@ -39,13 +39,6 @@ ENTRY(__swapcontext) lr %r1,%r2 lr %r0,%r3 - /* sigprocmask (SIG_BLOCK, NULL, &sc->sc_mask). */ - la %r2,SIG_BLOCK - slr %r3,%r3 - la %r4,SC_MASK(%r1) - lhi %r5,_NSIG8 - svc SYS_ify(rt_sigprocmask) - /* Store fpu context. */ stfpc SC_FPC(%r1) std %f0,SC_FPRS(%r1) @@ -74,11 +67,12 @@ ENTRY(__swapcontext) /* Store general purpose registers. */ stm %r0,%r15,SC_GPRS(%r1) - /* sigprocmask (SIG_SETMASK, &sc->sc_mask, NULL). */ - la %r2,SIG_BLOCK + /* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, &oucp->uc_sigmask, + sigsetsize). */ + la %r2,SIG_SETMASK lr %r5,%r0 la %r3,SC_MASK(%r5) - slr %r4,%r4 + la %r4,SC_MASK(%r1) lhi %r5,_NSIG8 svc SYS_ify(rt_sigprocmask) |