drivers: power: report battery voltage in AOSP compatible format
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / net / socket.c
index 0d716c943918334ae7ba285265f47ee138b76d55..c44152693b0c12ac3361dc5e1ce3c2b7089ae29b 100644 (file)
@@ -2051,14 +2051,12 @@ static int ___sys_sendmsg(struct socket *sock, struct msghdr __user *msg,
        int err, ctl_len, total_len;
 
        err = -EFAULT;
-       if (MSG_CMSG_COMPAT & flags) {
-               if (get_compat_msghdr(msg_sys, msg_compat))
-                       return -EFAULT;
-       } else {
+       if (MSG_CMSG_COMPAT & flags)
+               err = get_compat_msghdr(msg_sys, msg_compat);
+       else
                err = copy_msghdr_from_user(msg_sys, msg);
-               if (err)
-                       return err;
-       }
+       if (err)
+               return err;
 
        if (msg_sys->msg_iovlen > UIO_FASTIOV) {
                err = -EMSGSIZE;
@@ -2263,14 +2261,12 @@ static int ___sys_recvmsg(struct socket *sock, struct msghdr __user *msg,
        struct sockaddr __user *uaddr;
        int __user *uaddr_len;
 
-       if (MSG_CMSG_COMPAT & flags) {
-               if (get_compat_msghdr(msg_sys, msg_compat))
-                       return -EFAULT;
-       } else {
+       if (MSG_CMSG_COMPAT & flags)
+               err = get_compat_msghdr(msg_sys, msg_compat);
+       else
                err = copy_msghdr_from_user(msg_sys, msg);
-               if (err)
-                       return err;
-       }
+       if (err)
+               return err;
 
        if (msg_sys->msg_iovlen > UIO_FASTIOV) {
                err = -EMSGSIZE;
@@ -2393,8 +2389,10 @@ int __sys_recvmmsg(int fd, struct mmsghdr __user *mmsg, unsigned int vlen,
                return err;
 
        err = sock_error(sock->sk);
-       if (err)
+       if (err) {
+               datagrams = err;
                goto out_put;
+       }
 
        entry = mmsg;
        compat_entry = (struct compat_mmsghdr __user *)mmsg;
@@ -2449,27 +2447,26 @@ int __sys_recvmmsg(int fd, struct mmsghdr __user *mmsg, unsigned int vlen,
        }
 
        if (err == 0)
-               goto out_put;           
+               goto out_put;
 
        if (datagrams == 0) {
                datagrams = err;
                goto out_put;
        }
 
+       /*
+        * We may return less entries than requested (vlen) if the
+        * sock is non block and there aren't enough datagrams...
+        */
+       if (err != -EAGAIN) {
                /*
-                * We may return less entries than requested (vlen) if the
-                * sock is non block and there aren't enough datagrams...
+                * ... or  if recvmsg returns an error after we
+                * received some datagrams, where we record the
+                * error to return on the next call or if the
+                * app asks about it using getsockopt(SO_ERROR).
                 */
-               if (err != -EAGAIN) {
-                       /*
-                        * ... or  if recvmsg returns an error after we
-                        * received some datagrams, where we record the
-                        * error to return on the next call or if the
-                        * app asks about it using getsockopt(SO_ERROR).
-                        */
-                       sock->sk->sk_err = -err;
-               }
-
+               sock->sk->sk_err = -err;
+       }
 out_put:
        fput_light(sock->file, fput_needed);