You can import this changeset into BK by piping this whole message to: '| bk receive [path to repository]' or apply the patch as usual. =================================================================== ChangeSet@1.1414.4.9, 2003-11-09 00:40:57-02:00, acme@conectiva.com.br o LLC: help the compiler with likely/unlikely, saving some more bytes af_llc.c | 37 +++++++++++++++++++------------------ llc_conn.c | 12 ++++++------ llc_input.c | 2 +- 3 files changed, 26 insertions(+), 25 deletions(-) diff -Nru a/net/llc/af_llc.c b/net/llc/af_llc.c --- a/net/llc/af_llc.c Sat Nov 15 17:04:31 2003 +++ b/net/llc/af_llc.c Sat Nov 15 17:04:31 2003 @@ -149,7 +149,7 @@ 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); if (sk) { @@ -171,7 +171,7 @@ struct sock *sk = sock->sk; struct llc_opt *llc; - if (!sk) + if (unlikely(sk == NULL)) goto out; sock_hold(sk); lock_sock(sk); @@ -287,10 +287,10 @@ int rc = -EINVAL; dprintk("%s: binding %02X\n", __FUNCTION__, addr->sllc_sap); - if (!sk->sk_zapped || addrlen != sizeof(*addr)) + if (unlikely(!sk->sk_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; @@ -350,7 +350,7 @@ 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) @@ -388,10 +388,15 @@ 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 (sk->sk_zapped) { @@ -402,11 +407,6 @@ 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); @@ -440,10 +440,10 @@ 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 (sk->sk_zapped) @@ -606,10 +606,11 @@ 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); @@ -871,7 +872,7 @@ 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 *)optval); if (rc) @@ -946,7 +947,7 @@ 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) diff -Nru a/net/llc/llc_conn.c b/net/llc/llc_conn.c --- a/net/llc/llc_conn.c Sat Nov 15 17:04:31 2003 +++ b/net/llc/llc_conn.c Sat Nov 15 17:04:31 2003 @@ -64,19 +64,19 @@ skb_get(skb); ev->ind_prim = ev->cfm_prim = 0; rc = llc_conn_service(sk, skb); /* sending event to state machine */ - if (rc) { + if (unlikely(rc != 0)) { printk(KERN_ERR "%s: llc_conn_service failed\n", __FUNCTION__); goto out_kfree_skb; } - if (!ev->ind_prim && !ev->cfm_prim) { + if (unlikely(!ev->ind_prim && !ev->cfm_prim)) { /* indicate or confirm not required */ if (!skb->list) goto out_kfree_skb; goto out_skb_put; } - if (ev->ind_prim && ev->cfm_prim) /* Paranoia */ + if (unlikely(ev->ind_prim && ev->cfm_prim)) /* Paranoia */ skb_get(skb); switch (ev->ind_prim) { @@ -757,14 +757,14 @@ int rc = 0; struct llc_opt *llc = llc_sk(sk); - if (llc_backlog_type(skb) == LLC_PACKET) { - if (llc->state > 1) /* not closed */ + if (likely(llc_backlog_type(skb) == LLC_PACKET)) { + if (likely(llc->state > 1)) /* not closed */ rc = llc_conn_rcv(sk, skb); else goto out_kfree_skb; } else if (llc_backlog_type(skb) == LLC_EVENT) { /* timer expiration event */ - if (llc->state > 1) /* not closed */ + if (likely(llc->state > 1)) /* not closed */ rc = llc_conn_state_process(sk, skb); else goto out_kfree_skb; diff -Nru a/net/llc/llc_input.c b/net/llc/llc_input.c --- a/net/llc/llc_input.c Sat Nov 15 17:04:31 2003 +++ b/net/llc/llc_input.c Sat Nov 15 17:04:31 2003 @@ -101,7 +101,7 @@ u8 llc_len = 2; struct llc_pdu_sn *pdu; - if (!pskb_may_pull(skb, sizeof(*pdu))) + if (unlikely(!pskb_may_pull(skb, sizeof(*pdu)))) return 0; pdu = (struct llc_pdu_sn *)skb->data; =================================================================== This BitKeeper patch contains the following changesets: 1.1414.4.9 ## Wrapped with gzip_uu ## M'XL( +]XMC\ \U76V_:2A!^QK]BHDI5DG. O?G&$5$IT#0*)5$@#^<)+68) M%L:VL*%*CW_\V0M)"S@I1'V(N0QX=[Z=G?F^6?@ ]YE8-BH\6 CK WQ-LKQ1 M"9)8!'FXYK4@6=3&2SEPER1RH#Y+%J*NYM;'&+3GCEN?!#-9B MF34JN$:?[^2/J6A4[KJ7][W6G64UF]">\?A!#$0.S::5)\LUCR;9)Y[/HB2N MY4L>9PN1Z[6+YZD%08C(AXU=BFRGP YB;A'@"<:<83%!A'D.LU1HGW;#WT:A M&",?$>H37"!7?K4Z@&N8859C-1\0K6-<1_(#:C#4L-TJ(@V$H!09_J)01=9G M^+.[:%L!)-#KM1LP$U$*^4R Q$G#2"SA>YC/( KG(GJLKV+SX6_(^#J,'R"3 M]8%%LA0P?LQ%9EV#WN'MSYQ;U2,ORT(<61?E"2@D!>I1%*C7*$N">2TP>[0I M1I3:A!64NHY=4,]W"0DP\^RQ+X3X#1R?CJ0Q8)N",<3\@C@V(@<%(P?CDF"P M[=!BZOD<3PEGR*=\PKRCX+;"<0FF!X6SX$%)-(0@O^"$3UP/$3P5U.6.?0!: M&*>KO"058=I0;#/D%8=([MZ8_[K>G.@ZKQKO1E* MW$!U^5T_I8!N2\KQ!AEV'!>P=:7?*^$43I^B.5T&<-($='8&_UD=EZA9^GU[ MUHE85R_">#)*E^$"/GX$?2.8+O2-C;.OG?T]YUW?'=?ZN>SVL@9)R.&\+G$< M!$0".5@:C;3!41D8\V >)0\C=3*<9O/QF>2FRO[HMM6^[@YU))4=I^I%EO-< MP 5@LURU&',CAY2R3U9OL=1NHHB14098_A# M)-/3\W2R.I/7%C.>SJ3#:'',8?@;N)+#D+JJ-+)$MB:%E-FQI/ E*[SW30M] MUK] BZ>J+:F.-+AI7X\ZEW>M;U 44#(V&-YU6]], MX\2NX9F[S[-LKCSZ][V>)%2'^$A--&:'D)E<(9N/?O TE8U)+LHGDV4D8M7= MGYBI;IT9(&J Z!Z0FB.1% VG?!%&CPJ@]64DZZ(\J:T]C=F-54=@VJ5T&K9O M1]W!L/6Y=S7XVNUH;Q]K;VWVUWTI7.HSX\; .2K<2N4AR1-(5OD_Y<'JFISL MU&3;31Z03:AV6STYV/EW#T>7UNQ9U78P:M_T^]WV\*I_J4)GR :I,\9TVHQY M&>%$(]SW-Q@F:8PYQM=Y*>7EN^@X2)_(QASEB#7)E2''1"MI)W,'ZBHC@^3! ML-M7"WB&\5X)XR.Q%I&)J:>JJ*B