[klibc] Hopefully correct the handing of error return for s390/s390x

s390 was comparing against an outdated max errno value.
s390x was additionally getting the sign wrong in errno.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
diff --git a/usr/klibc/arch/s390/syscall.c b/usr/klibc/arch/s390/syscall.c
index 0d6b27e..60fab13 100644
--- a/usr/klibc/arch/s390/syscall.c
+++ b/usr/klibc/arch/s390/syscall.c
@@ -7,9 +7,9 @@
  */
 #include <errno.h>
 
-long int __syscall_common(long int err)
+unsigned long __syscall_common(unsigned long)
 {
-	if ((unsigned long)(err) < (unsigned long)(-125))
+	if (err < -4095UL)
 		return err;
 	errno = -err;
 	return -1;
diff --git a/usr/klibc/arch/s390x/syscall.c b/usr/klibc/arch/s390x/syscall.c
index c0f17c4..3a7dd77 100644
--- a/usr/klibc/arch/s390x/syscall.c
+++ b/usr/klibc/arch/s390x/syscall.c
@@ -1,5 +1,5 @@
 /*
- * arch/s390/syscall.c
+ * arch/s390x/syscall.c
  *
  * Common error-handling path for system calls.
  * The return value from __syscall_common becomes the
@@ -7,10 +7,10 @@
  */
 #include <errno.h>
 
-long int __syscall_common(long int err)
+unsigned long __syscall_common(unsigned long err)
 {
-	if ((unsigned long)(err) < (unsigned long)(-125))
+	if (err < -4095UL)
 		return err;
-	errno = err;
+	errno = -err;
 	return -1;
 }