You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
2.1 KiB
62 lines
2.1 KiB
6 years ago
|
The patch originally submitted corrected behaviour on s390 and s390x.
|
||
|
The i686 change was added in order to maintain parity.
|
||
|
|
||
|
Author: Stefan Liebler <stli@linux.vnet.ibm.com>
|
||
|
|
||
|
Index: b/sysdeps/unix/sysv/linux/s390/s390-32/socket.S
|
||
|
===================================================================
|
||
|
--- a/sysdeps/unix/sysv/linux/s390/s390-32/socket.S
|
||
|
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/socket.S
|
||
|
@@ -99,8 +99,8 @@ ENTRY(__socket)
|
||
|
l %r15,0(0,%r15) /* load back chain */
|
||
|
lm %r6,15,24(%r15) /* load registers */
|
||
|
|
||
|
- /* gpr2 is < 0 if there was an error. */
|
||
|
- lhi %r0,-125
|
||
|
+ /* gpr2 is in [-4095, -1] if there was an error. */
|
||
|
+ lhi %r0,-4095
|
||
|
clr %r2,%r0
|
||
|
jnl SYSCALL_ERROR_LABEL
|
||
|
|
||
|
Index: b/sysdeps/unix/sysv/linux/s390/s390-64/socket.S
|
||
|
===================================================================
|
||
|
--- a/sysdeps/unix/sysv/linux/s390/s390-64/socket.S
|
||
|
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/socket.S
|
||
|
@@ -99,8 +99,8 @@ ENTRY(__socket)
|
||
|
lg %r15,0(%r15) /* Load back chain. */
|
||
|
lmg %r6,15,48(%r15) /* Load registers. */
|
||
|
|
||
|
- /* gpr2 is < 0 if there was an error. */
|
||
|
- lghi %r0,-125
|
||
|
+ /* gpr2 is in [-4095, -1] if there was an error. */
|
||
|
+ lghi %r0,-4095
|
||
|
clgr %r2,%r0
|
||
|
jgnl SYSCALL_ERROR_LABEL
|
||
|
|
||
|
Index: b/sysdeps/unix/sysv/linux/i386/socket.S
|
||
|
===================================================================
|
||
|
--- a/sysdeps/unix/sysv/linux/i386/socket.S
|
||
|
+++ b/sysdeps/unix/sysv/linux/i386/socket.S
|
||
|
@@ -63,8 +63,8 @@ ENTRY (__socket)
|
||
|
movl %edx, %ebx
|
||
|
cfi_restore (3)
|
||
|
|
||
|
- /* %eax is < 0 if there was an error. */
|
||
|
- cmpl $-125, %eax
|
||
|
+ /* %eax is in [-4095, -1] if there was an error. */
|
||
|
+ cmpl $-4095, %eax
|
||
|
jae SYSCALL_ERROR_LABEL
|
||
|
|
||
|
/* Successful; return the syscall's value. */
|
||
|
@@ -108,8 +108,8 @@ ENTRY (__socket)
|
||
|
cfi_restore (6)
|
||
|
cfi_adjust_cfa_offset(-4)
|
||
|
|
||
|
- /* %eax is < 0 if there was an error. */
|
||
|
- cmpl $-125, %eax
|
||
|
+ /* %eax is in [-4095, -1] if there was an error. */
|
||
|
+ cmpl $-4095, %eax
|
||
|
jae SYSCALL_ERROR_LABEL
|
||
|
|
||
|
/* Successful; return the syscall's value. */
|