summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/poll.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux/poll.c')
-rw-r--r--sysdeps/unix/sysv/linux/poll.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/sysdeps/unix/sysv/linux/poll.c b/sysdeps/unix/sysv/linux/poll.c
index 8119a974c1..880eeb9aa8 100644
--- a/sysdeps/unix/sysv/linux/poll.c
+++ b/sysdeps/unix/sysv/linux/poll.c
@@ -20,12 +20,12 @@
 #include <errno.h>
 #include <sys/poll.h>
 
+#include <sysdep.h>
 #include <sys/syscall.h>
 #ifdef __NR_poll
 
 extern int __syscall_poll __P ((struct pollfd *fds, unsigned int nfds,
 				int timeout));
-weak_extern (__syscall_poll)
 
 static int __emulate_poll __P ((struct pollfd *fds, unsigned long int nfds,
 				int timeout)) internal_function;
@@ -38,21 +38,16 @@ __poll (fds, nfds, timeout)
      int timeout;
 {
   static int must_emulate = 0;
-  int (*syscall) __P ((struct pollfd *, unsigned int, int)) = __syscall_poll;
 
   if (!must_emulate)
     {
-      if (syscall)
-	{
-	  int errno_saved = errno;
-	  int retval = __syscall_poll (fds, nfds, timeout);
+      int errno_saved = errno;
+      int retval = INLINE_SYSCALL (poll, 3, fds, nfds, timeout);
 
-	  if (retval >= 0 || errno != ENOSYS)
-	    return retval;
-
-	  __set_errno (errno_saved);
-	}
+      if (retval >= 0 || errno != ENOSYS)
+	return retval;
 
+      __set_errno (errno_saved);
       must_emulate = 1;
     }