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, SH's __socket syscall wrapper is broken for the cancellation case. Here is a fix. Regards, kaz -- 2003-07-12 Kaz Kojima <kkojima@rr.iij4u.or.jp> * sysdeps/unix/sysv/linux/sh/socket.S: Save and restore the PR register across CENABLE and CDISABLE. diff -u3prN ORIG/libc/sysdeps/unix/sysv/linux/sh/socket.S LOCAL/libc/sysdeps/unix/sysv/linux/sh/socket.S --- ORIG/libc/sysdeps/unix/sysv/linux/sh/socket.S Wed Jan 8 08:37:36 2003 +++ LOCAL/libc/sysdeps/unix/sysv/linux/sh/socket.S Thu Jul 10 13:19:45 2003 @@ -94,7 +94,9 @@ ENTRY (__socket) #if defined NEED_CANCELLATION && defined CENABLE .Lsocket_cancel: /* Enable asynchronous cancellation. */ + sts.l pr,@-r15 CENABLE + lds.l @r15+,pr /* Do the system call trap. */ mov #+P(SOCKOP_,socket), r4 @@ -102,9 +104,11 @@ ENTRY (__socket) mov.l .L1,r3 trapa #0x12 + sts.l pr,@-r15 mov.l r0,@-r15 CDISABLE mov.l @r15+,r0 + lds.l @r15+,pr /* Pop args off the stack */ P(POPARGS_,NARGS)
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |