bug-glibc
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

pa INLINE_SYSCALL fix


From: Matthew Wilcox
Subject: pa INLINE_SYSCALL fix
Date: Thu, 19 Apr 2001 15:05:59 -0600
User-agent: Mutt/1.2.5i

Please apply.

Index: ChangeLog
===================================================================
RCS file: /cvs/glibc/libc/ChangeLog,v
retrieving revision 1.5240
diff -u -p -r1.5240 ChangeLog
--- ChangeLog   2001/04/19 20:48:04     1.5240
+++ ChangeLog   2001/04/19 21:02:13
@@ -1,3 +1,9 @@
+2001-04-19  Matthew Wilcox  <address@hidden>
+
+       * sysdeps/unix/sysv/linux/hppa/sysdep.h (INLINE_SYSCALL):
+       Change to return a signed result for compatibility with other
+       architectures, and correctness.
+
 2001-04-19  Ulrich Drepper  <address@hidden>
 
        * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_32BITUIDS):
Index: sysdeps/unix/sysv/linux/hppa/sysdep.h
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/hppa/sysdep.h,v
retrieving revision 1.2
diff -u -p -r1.2 sysdep.h
--- sysdep.h    2001/04/09 03:58:11     1.2
+++ sysdep.h    2001/04/19 21:02:15
@@ -192,21 +192,21 @@
 
 #undef INLINE_SYSCALL
 #define INLINE_SYSCALL(name, nr, args...)      ({              \
-       unsigned long __sys_res;                                \
+       long __sys_res;                                         \
        {                                                       \
                register unsigned long __res asm("r28");        \
                LOAD_ARGS_##nr(args)                            \
                asm volatile(                                   \
-                       "ble  0x100(%%sr2, %%r0)\n\t"   \
+                       "ble  0x100(%%sr2, %%r0)\n\t"           \
                        " ldi %1, %%r20"                        \
                        : "=r" (__res)                          \
                        : "i" (SYS_ify(name)) ASM_ARGS_##nr     \
                         );                                     \
                __sys_res = __res;                              \
        }                                                       \
-       if (__sys_res >= (unsigned long)-4095) {                \
+       if ((unsigned long)__sys_res >= (unsigned long)-4095) { \
                __set_errno(-__sys_res);                        \
-               __sys_res = (unsigned long)-1;                  \
+               __sys_res = -1;                                 \
        }                                                       \
        __sys_res;                                              \
 })



reply via email to

[Prev in Thread] Current Thread [Next in Thread]