int addr_len);
 extern int __sys_accept4(int fd, struct sockaddr __user *upeer_sockaddr,
                         int __user *upeer_addrlen, int flags);
+extern int __sys_socket(int family, int type, int protocol);
 
 #endif /* _LINUX_SOCKET_H */
 
 
        switch (call) {
        case SYS_SOCKET:
-               ret = sys_socket(a0, a1, a[2]);
+               ret = __sys_socket(a0, a1, a[2]);
                break;
        case SYS_BIND:
                ret = sys_bind(a0, compat_ptr(a1), a[2]);
 
 }
 EXPORT_SYMBOL(sock_create_kern);
 
-SYSCALL_DEFINE3(socket, int, family, int, type, int, protocol)
+int __sys_socket(int family, int type, int protocol)
 {
        int retval;
        struct socket *sock;
        return sock_map_fd(sock, flags & (O_CLOEXEC | O_NONBLOCK));
 }
 
+SYSCALL_DEFINE3(socket, int, family, int, type, int, protocol)
+{
+       return __sys_socket(family, type, protocol);
+}
+
 /*
  *     Create a pair of connected sockets.
  */
 
        switch (call) {
        case SYS_SOCKET:
-               err = sys_socket(a0, a1, a[2]);
+               err = __sys_socket(a0, a1, a[2]);
                break;
        case SYS_BIND:
                err = sys_bind(a0, (struct sockaddr __user *)a1, a[2]);