[LLC]: Help the compiler with likely/unlikely, saving some more bytes
[linux-3.10.git] / net / llc / af_llc.c
index 81a53791ed9c4e163744da99384d86e71f8a7fbb..aed61e6376ed646515d681e20fd7ff05fbc7a9bf 100644 (file)
@@ -155,7 +155,7 @@ static int llc_ui_create(struct socket *sock, int protocol)
        struct sock *sk;
        int rc = -ESOCKTNOSUPPORT;
 
-       if (sock->type == SOCK_DGRAM || sock->type == SOCK_STREAM) {
+       if (likely(sock->type == SOCK_DGRAM || sock->type == SOCK_STREAM)) {
                rc = -ENOMEM;
                sk = llc_sk_alloc(PF_LLC, GFP_KERNEL, &llc_proto);
                if (sk) {
@@ -177,7 +177,7 @@ static int llc_ui_release(struct socket *sock)
        struct sock *sk = sock->sk;
        struct llc_sock *llc;
 
-       if (!sk)
+       if (unlikely(sk == NULL))
                goto out;
        sock_hold(sk);
        lock_sock(sk);
@@ -294,10 +294,10 @@ static int llc_ui_bind(struct socket *sock, struct sockaddr *uaddr, int addrlen)
        int rc = -EINVAL;
 
        dprintk("%s: binding %02X\n", __FUNCTION__, addr->sllc_sap);
-       if (!sock_flag(sk, SOCK_ZAPPED) || addrlen != sizeof(*addr))
+       if (unlikely(!sock_flag(sk, SOCK_ZAPPED) || addrlen != sizeof(*addr)))
                goto out;
        rc = -EAFNOSUPPORT;
-       if (addr->sllc_family != AF_LLC)
+       if (unlikely(addr->sllc_family != AF_LLC))
                goto out;
        if (!addr->sllc_sap) {
                rc = -EUSERS;
@@ -358,7 +358,7 @@ static int llc_ui_shutdown(struct socket *sock, int how)
        int rc = -ENOTCONN;
 
        lock_sock(sk);
-       if (sk->sk_state != TCP_ESTABLISHED)
+       if (unlikely(sk->sk_state != TCP_ESTABLISHED))
                goto out;
        rc = -EINVAL;
        if (how != 2)
@@ -396,10 +396,15 @@ static int llc_ui_connect(struct socket *sock, struct sockaddr *uaddr,
        int rc = -EINVAL;
 
        lock_sock(sk);
-       if (addrlen != sizeof(*addr))
+       if (unlikely(addrlen != sizeof(*addr)))
                goto out;
        rc = -EAFNOSUPPORT;
-       if (addr->sllc_family != AF_LLC)
+       if (unlikely(addr->sllc_family != AF_LLC))
+               goto out;
+       if (unlikely(sk->sk_type != SOCK_STREAM))
+               goto out;
+       rc = -EALREADY;
+       if (unlikely(sock->state == SS_CONNECTING))
                goto out;
        /* bind connection to sap if user hasn't done it. */
        if (sock_flag(sk, SOCK_ZAPPED)) {
@@ -410,11 +415,6 @@ static int llc_ui_connect(struct socket *sock, struct sockaddr *uaddr,
                llc->daddr.lsap = addr->sllc_sap;
                memcpy(llc->daddr.mac, addr->sllc_mac, IFHWADDRLEN);
        }
-       if (sk->sk_type != SOCK_STREAM)
-               goto out;
-       rc = -EALREADY;
-       if (sock->state == SS_CONNECTING)
-               goto out;
        sock->state = SS_CONNECTING;
        sk->sk_state   = TCP_SYN_SENT;
        llc->link   = llc_ui_next_link_no(llc->sap->laddr.lsap);
@@ -448,10 +448,10 @@ static int llc_ui_listen(struct socket *sock, int backlog)
        int rc = -EINVAL;
 
        lock_sock(sk);
-       if (sock->state != SS_UNCONNECTED)
+       if (unlikely(sock->state != SS_UNCONNECTED))
                goto out;
        rc = -EOPNOTSUPP;
-       if (sk->sk_type != SOCK_STREAM)
+       if (unlikely(sk->sk_type != SOCK_STREAM))
                goto out;
        rc = -EAGAIN;
        if (sock_flag(sk, SOCK_ZAPPED))
@@ -614,10 +614,11 @@ static int llc_ui_accept(struct socket *sock, struct socket *newsock, int flags)
        dprintk("%s: accepting on %02X\n", __FUNCTION__,
                llc_sk(sk)->laddr.lsap);
        lock_sock(sk);
-       if (sk->sk_type != SOCK_STREAM)
+       if (unlikely(sk->sk_type != SOCK_STREAM))
                goto out;
        rc = -EINVAL;
-       if (sock->state != SS_UNCONNECTED || sk->sk_state != TCP_LISTEN)
+       if (unlikely(sock->state != SS_UNCONNECTED ||
+                    sk->sk_state != TCP_LISTEN))
                goto out;
        /* wait for a connection to arrive. */
        rc = llc_ui_wait_for_data(sk, sk->sk_rcvtimeo);
@@ -880,7 +881,7 @@ static int llc_ui_setsockopt(struct socket *sock, int level, int optname,
        int rc = -EINVAL, opt;
 
        lock_sock(sk);
-       if (level != SOL_LLC || optlen != sizeof(int))
+       if (unlikely(level != SOL_LLC || optlen != sizeof(int)))
                goto out;
        rc = get_user(opt, (int __user *)optval);
        if (rc)
@@ -955,7 +956,7 @@ static int llc_ui_getsockopt(struct socket *sock, int level, int optname,
        int val = 0, len = 0, rc = -EINVAL;
 
        lock_sock(sk);
-       if (level != SOL_LLC)
+       if (unlikely(level != SOL_LLC))
                goto out;
        rc = get_user(len, optlen);
        if (rc)