Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[linux-drm-fsl-dcu.git] / net / core / sock.c
index 0ed5b4f0bc407aef5b376149dcc2d49aa3c49937..1e35d9973f570c1835a1ecef395b69804dcc3f2f 100644 (file)
@@ -34,7 +34,7 @@
  *             Alan Cox        :       TCP ack handling is buggy, the DESTROY timer
  *                                     was buggy. Put a remove_sock() in the handler
  *                                     for memory when we hit 0. Also altered the timer
- *                                     code. The ACK stuff can wait and needs major 
+ *                                     code. The ACK stuff can wait and needs major
  *                                     TCP layer surgery.
  *             Alan Cox        :       Fixed TCP ack bug, removed remove sock
  *                                     and fixed timer/inet_bh race.
@@ -217,8 +217,8 @@ static void sock_warn_obsolete_bsdism(const char *name)
 {
        static int warned;
        static char warncomm[TASK_COMM_LEN];
-       if (strcmp(warncomm, current->comm) && warned < 5) { 
-               strcpy(warncomm,  current->comm); 
+       if (strcmp(warncomm, current->comm) && warned < 5) {
+               strcpy(warncomm,  current->comm);
                printk(KERN_WARNING "process `%s' is using obsolete "
                       "%s SO_BSDCOMPAT\n", warncomm, name);
                warned++;
@@ -226,8 +226,8 @@ static void sock_warn_obsolete_bsdism(const char *name)
 }
 
 static void sock_disable_timestamp(struct sock *sk)
-{      
-       if (sock_flag(sk, SOCK_TIMESTAMP)) { 
+{
+       if (sock_flag(sk, SOCK_TIMESTAMP)) {
                sock_reset_flag(sk, SOCK_TIMESTAMP);
                net_disable_timestamp();
        }
@@ -347,7 +347,7 @@ int sock_setsockopt(struct socket *sock, int level, int optname,
        int valbool;
        struct linger ling;
        int ret = 0;
-       
+
        /*
         *      Options without arguments
         */
@@ -360,20 +360,20 @@ int sock_setsockopt(struct socket *sock, int level, int optname,
                return 0;
        }
 #endif
-       
-       if(optlen<sizeof(int))
-               return(-EINVAL);
-       
+
+       if(optlen<sizeof(int))
+               return(-EINVAL);
+
        if (get_user(val, (int __user *)optval))
                return -EFAULT;
-       
-       valbool = val?1:0;
+
+       valbool = val?1:0;
 
        lock_sock(sk);
 
-       switch(optname) 
-       {
-               case SO_DEBUG:  
+       switch(optname)
+       {
+               case SO_DEBUG:
                        if(val && !capable(CAP_NET_ADMIN))
                        {
                                ret = -EACCES;
@@ -389,7 +389,7 @@ int sock_setsockopt(struct socket *sock, int level, int optname,
                case SO_TYPE:
                case SO_ERROR:
                        ret = -ENOPROTOOPT;
-                       break;
+                       break;
                case SO_DONTROUTE:
                        if (valbool)
                                sock_set_flag(sk, SOCK_LOCALROUTE);
@@ -404,7 +404,7 @@ int sock_setsockopt(struct socket *sock, int level, int optname,
                           about it this is right. Otherwise apps have to
                           play 'guess the biggest size' games. RCVBUF/SNDBUF
                           are treated in BSD as hints */
-                          
+
                        if (val > sysctl_wmem_max)
                                val = sysctl_wmem_max;
 set_sndbuf:
@@ -433,7 +433,7 @@ set_sndbuf:
                           about it this is right. Otherwise apps have to
                           play 'guess the biggest size' games. RCVBUF/SNDBUF
                           are treated in BSD as hints */
-                         
+
                        if (val > sysctl_rmem_max)
                                val = sysctl_rmem_max;
 set_rcvbuf:
@@ -474,16 +474,16 @@ set_rcvbuf:
                        sock_valbool_flag(sk, SOCK_KEEPOPEN, valbool);
                        break;
 
-               case SO_OOBINLINE:
+               case SO_OOBINLINE:
                        sock_valbool_flag(sk, SOCK_URGINLINE, valbool);
                        break;
 
-               case SO_NO_CHECK:
+               case SO_NO_CHECK:
                        sk->sk_no_check = valbool;
                        break;
 
                case SO_PRIORITY:
-                       if ((val >= 0 && val <= 6) || capable(CAP_NET_ADMIN)) 
+                       if ((val >= 0 && val <= 6) || capable(CAP_NET_ADMIN))
                                sk->sk_priority = val;
                        else
                                ret = -EPERM;
@@ -547,9 +547,9 @@ set_rcvbuf:
 #ifdef CONFIG_NETDEVICES
                case SO_BINDTODEVICE:
                {
-                       char devname[IFNAMSIZ]; 
+                       char devname[IFNAMSIZ];
 
-                       /* Sorry... */ 
+                       /* Sorry... */
                        if (!capable(CAP_NET_RAW)) {
                                ret = -EPERM;
                                break;
@@ -557,9 +557,9 @@ set_rcvbuf:
 
                        /* Bind this socket to a particular device like "eth0",
                         * as specified in the passed interface name. If the
-                        * name is "" or the option length is zero the socket 
-                        * is not bound. 
-                        */ 
+                        * name is "" or the option length is zero the socket
+                        * is not bound.
+                        */
 
                        if (!valbool) {
                                sk->sk_bound_dev_if = 0;
@@ -608,7 +608,7 @@ set_rcvbuf:
                case SO_DETACH_FILTER:
                        rcu_read_lock_bh();
                        filter = rcu_dereference(sk->sk_filter);
-                        if (filter) {
+                       if (filter) {
                                rcu_assign_pointer(sk->sk_filter, NULL);
                                sk_filter_release(sk, filter);
                                rcu_read_unlock_bh();
@@ -628,9 +628,9 @@ set_rcvbuf:
                /* We implement the SO_SNDLOWAT etc to
                   not be settable (1003.1g 5.3) */
                default:
-                       ret = -ENOPROTOOPT;
+                       ret = -ENOPROTOOPT;
                        break;
-       }
+       }
        release_sock(sk);
        return ret;
 }
@@ -640,32 +640,32 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
                    char __user *optval, int __user *optlen)
 {
        struct sock *sk = sock->sk;
-       
+
        union
        {
-               int val;
-               struct linger ling;
+               int val;
+               struct linger ling;
                struct timeval tm;
        } v;
-       
+
        unsigned int lv = sizeof(int);
        int len;
-       
-       if(get_user(len,optlen))
-               return -EFAULT;
+
+       if(get_user(len,optlen))
+               return -EFAULT;
        if(len < 0)
                return -EINVAL;
-               
-       switch(optname) 
-       {
-               case SO_DEBUG:          
+
+       switch(optname)
+       {
+               case SO_DEBUG:
                        v.val = sock_flag(sk, SOCK_DBG);
                        break;
-               
+
                case SO_DONTROUTE:
                        v.val = sock_flag(sk, SOCK_LOCALROUTE);
                        break;
-               
+
                case SO_BROADCAST:
                        v.val = !!sock_flag(sk, SOCK_BROADCAST);
                        break;
@@ -673,7 +673,7 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
                case SO_SNDBUF:
                        v.val = sk->sk_sndbuf;
                        break;
-               
+
                case SO_RCVBUF:
                        v.val = sk->sk_rcvbuf;
                        break;
@@ -687,7 +687,7 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
                        break;
 
                case SO_TYPE:
-                       v.val = sk->sk_type;                            
+                       v.val = sk->sk_type;
                        break;
 
                case SO_ERROR:
@@ -699,7 +699,7 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
                case SO_OOBINLINE:
                        v.val = !!sock_flag(sk, SOCK_URGINLINE);
                        break;
-       
+
                case SO_NO_CHECK:
                        v.val = sk->sk_no_check;
                        break;
@@ -707,13 +707,13 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
                case SO_PRIORITY:
                        v.val = sk->sk_priority;
                        break;
-               
-               case SO_LINGER: 
+
+               case SO_LINGER:
                        lv              = sizeof(v.ling);
                        v.ling.l_onoff  = !!sock_flag(sk, SOCK_LINGER);
-                       v.ling.l_linger = sk->sk_lingertime / HZ;
+                       v.ling.l_linger = sk->sk_lingertime / HZ;
                        break;
-                                       
+
                case SO_BSDCOMPAT:
                        sock_warn_obsolete_bsdism("getsockopt");
                        break;
@@ -750,7 +750,7 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
 
                case SO_SNDLOWAT:
                        v.val=1;
-                       break; 
+                       break;
 
                case SO_PASSCRED:
                        v.val = test_bit(SOCK_PASSCRED, &sock->flags) ? 1 : 0;
@@ -798,9 +798,9 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
        if (copy_to_user(optval, &v, len))
                return -EFAULT;
 lenout:
-       if (put_user(len, optlen))
-               return -EFAULT;
-       return 0;
+       if (put_user(len, optlen))
+               return -EFAULT;
+       return 0;
 }
 
 /*
@@ -846,7 +846,7 @@ struct sock *sk_alloc(int family, gfp_t priority,
                        sk->sk_prot = sk->sk_prot_creator = prot;
                        sock_lock_init(sk);
                }
-               
+
                if (security_sk_alloc(sk, family, priority))
                        goto out_free;
 
@@ -988,8 +988,8 @@ void __init sk_init(void)
  */
 
 
-/* 
- * Write buffer destructor automatically called from kfree_skb. 
+/*
+ * Write buffer destructor automatically called from kfree_skb.
  */
 void sock_wfree(struct sk_buff *skb)
 {
@@ -1002,8 +1002,8 @@ void sock_wfree(struct sk_buff *skb)
        sock_put(sk);
 }
 
-/* 
- * Read buffer destructor automatically called from kfree_skb. 
+/*
+ * Read buffer destructor automatically called from kfree_skb.
  */
 void sock_rfree(struct sk_buff *skb)
 {
@@ -1051,7 +1051,7 @@ struct sk_buff *sock_wmalloc(struct sock *sk, unsigned long size, int force,
 
 /*
  * Allocate a skb from the socket's receive buffer.
- */ 
+ */
 struct sk_buff *sock_rmalloc(struct sock *sk, unsigned long size, int force,
                             gfp_t priority)
 {
@@ -1065,16 +1065,16 @@ struct sk_buff *sock_rmalloc(struct sock *sk, unsigned long size, int force,
        return NULL;
 }
 
-/* 
+/*
  * Allocate a memory block from the socket's option memory buffer.
- */ 
+ */
 void *sock_kmalloc(struct sock *sk, int size, gfp_t priority)
 {
        if ((unsigned)size <= sysctl_optmem_max &&
            atomic_read(&sk->sk_omem_alloc) + size < sysctl_optmem_max) {
                void *mem;
                /* First do the add, to avoid the race if kmalloc
-                * might sleep.
+                * might sleep.
                 */
                atomic_add(size, &sk->sk_omem_alloc);
                mem = kmalloc(size, priority);
@@ -1210,7 +1210,7 @@ failure:
        return NULL;
 }
 
-struct sk_buff *sock_alloc_send_skb(struct sock *sk, unsigned long size, 
+struct sk_buff *sock_alloc_send_skb(struct sock *sk, unsigned long size,
                                    int noblock, int *errcode)
 {
        return sock_alloc_send_pskb(sk, size, 0, noblock, errcode);
@@ -1298,7 +1298,7 @@ int sock_no_bind(struct socket *sock, struct sockaddr *saddr, int len)
        return -EOPNOTSUPP;
 }
 
-int sock_no_connect(struct socket *sock, struct sockaddr *saddr, 
+int sock_no_connect(struct socket *sock, struct sockaddr *saddr,
                    int len, int flags)
 {
        return -EOPNOTSUPP;
@@ -1314,7 +1314,7 @@ int sock_no_accept(struct socket *sock, struct socket *newsock, int flags)
        return -EOPNOTSUPP;
 }
 
-int sock_no_getname(struct socket *sock, struct sockaddr *saddr, 
+int sock_no_getname(struct socket *sock, struct sockaddr *saddr,
                    int *len, int peer)
 {
        return -EOPNOTSUPP;
@@ -1400,7 +1400,7 @@ static void sock_def_error_report(struct sock *sk)
        read_lock(&sk->sk_callback_lock);
        if (sk->sk_sleep && waitqueue_active(sk->sk_sleep))
                wake_up_interruptible(sk->sk_sleep);
-       sk_wake_async(sk,0,POLL_ERR); 
+       sk_wake_async(sk,0,POLL_ERR);
        read_unlock(&sk->sk_callback_lock);
 }
 
@@ -1473,7 +1473,7 @@ void sock_init_data(struct socket *sock, struct sock *sk)
        sk->sk_send_head        =       NULL;
 
        init_timer(&sk->sk_timer);
-       
+
        sk->sk_allocation       =       GFP_KERNEL;
        sk->sk_rcvbuf           =       sysctl_rmem_default;
        sk->sk_sndbuf           =       sysctl_wmem_default;
@@ -1553,26 +1553,26 @@ void fastcall release_sock(struct sock *sk)
 EXPORT_SYMBOL(release_sock);
 
 int sock_get_timestamp(struct sock *sk, struct timeval __user *userstamp)
-{ 
+{
        if (!sock_flag(sk, SOCK_TIMESTAMP))
                sock_enable_timestamp(sk);
-       if (sk->sk_stamp.tv_sec == -1) 
+       if (sk->sk_stamp.tv_sec == -1)
                return -ENOENT;
        if (sk->sk_stamp.tv_sec == 0)
                do_gettimeofday(&sk->sk_stamp);
        return copy_to_user(userstamp, &sk->sk_stamp, sizeof(struct timeval)) ?
-               -EFAULT : 0; 
-} 
+               -EFAULT : 0;
+}
 EXPORT_SYMBOL(sock_get_timestamp);
 
 void sock_enable_timestamp(struct sock *sk)
-{      
-       if (!sock_flag(sk, SOCK_TIMESTAMP)) { 
+{
+       if (!sock_flag(sk, SOCK_TIMESTAMP)) {
                sock_set_flag(sk, SOCK_TIMESTAMP);
                net_enable_timestamp();
        }
 }
-EXPORT_SYMBOL(sock_enable_timestamp); 
+EXPORT_SYMBOL(sock_enable_timestamp);
 
 /*
  *     Get a socket option on an socket.