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.1421.1.3, 2003-11-11 00:26:48-02:00, acme@conectiva.com.br o DECNET: use sk_wait_event primitive af_decnet.c | 34 +++++++++------------------------- 1 files changed, 9 insertions(+), 25 deletions(-) diff -Nru a/net/decnet/af_decnet.c b/net/decnet/af_decnet.c --- a/net/decnet/af_decnet.c Sat Nov 15 17:02:56 2003 +++ b/net/decnet/af_decnet.c Sat Nov 15 17:02:56 2003 @@ -819,14 +819,10 @@ scp->segsize_loc = dst_path_metric(__sk_dst_get(sk), RTAX_ADVMSS); dn_send_conn_conf(sk, allocation); - prepare_to_wait(sk->sk_sleep, &wait, TASK_INTERRUPTIBLE); for(;;) { - release_sock(sk); - if (scp->state == DN_CC) - *timeo = schedule_timeout(*timeo); - lock_sock(sk); + prepare_to_wait(sk->sk_sleep, &wait, TASK_INTERRUPTIBLE); err = 0; - if (scp->state == DN_RUN) + if (sk_wait_event(sk, timeo, scp->state == DN_RUN)) break; err = sock_error(sk); if (err) @@ -837,7 +833,6 @@ err = -EAGAIN; if (!*timeo) break; - prepare_to_wait(sk->sk_sleep, &wait, TASK_INTERRUPTIBLE); } finish_wait(sk->sk_sleep, &wait); if (err == 0) { @@ -860,14 +855,10 @@ if (!*timeo) return -EALREADY; - prepare_to_wait(sk->sk_sleep, &wait, TASK_INTERRUPTIBLE); for(;;) { - release_sock(sk); - if (scp->state == DN_CI || scp->state == DN_CC) - *timeo = schedule_timeout(*timeo); - lock_sock(sk); + prepare_to_wait(sk->sk_sleep, &wait, TASK_INTERRUPTIBLE); err = 0; - if (scp->state == DN_RUN) + if (sk_wait_event(sk, timeo, scp->state == DN_RUN)) break; err = sock_error(sk); if (err) @@ -878,7 +869,6 @@ err = -ETIMEDOUT; if (!*timeo) break; - prepare_to_wait(sk->sk_sleep, &wait, TASK_INTERRUPTIBLE); } finish_wait(sk->sk_sleep, &wait); out: @@ -1024,18 +1014,13 @@ { DEFINE_WAIT(wait); struct sk_buff *skb = NULL; - int err = 0; + int err; - prepare_to_wait(sk->sk_sleep, &wait, TASK_INTERRUPTIBLE); for(;;) { - release_sock(sk); - skb = skb_dequeue(&sk->sk_receive_queue); - if (skb == NULL) { - *timeo = schedule_timeout(*timeo); - skb = skb_dequeue(&sk->sk_receive_queue); - } - lock_sock(sk); - if (skb != NULL) + prepare_to_wait(sk->sk_sleep, &wait, TASK_INTERRUPTIBLE); + err = 0; + if (sk_wait_event(sk, timeo, + (skb = skb_dequeue(&sk->sk_receive_queue)) != NULL)) break; err = -EINVAL; if (sk->sk_state != TCP_LISTEN) @@ -1046,7 +1031,6 @@ err = -EAGAIN; if (!*timeo) break; - prepare_to_wait(sk->sk_sleep, &wait, TASK_INTERRUPTIBLE); } finish_wait(sk->sk_sleep, &wait); =================================================================== This BitKeeper patch contains the following changesets: 1.1421.1.3 ## Wrapped with gzip_uu ## M'XL( &!XMC\ \65;6_:,!#'7\>?XJ9*5=$@V([S0"JJ=@5MJ(@A"J^12:XC MHDE88J@FY4X3W76>8K>.[:XVLINAZ4C;LP6CB*DVT1KV6)2A)6SG MP6.^;3&T9L./B_'%C+%^'R[7.ON"UVB@WVHAM)*<2[I57D8B%T$I@S*4*/,5JM/-?\1]G<00U+H5P5<6% M(STV &$+)6FP'>!.5PCJP'DHO5 %'2Y#SN')S/!>0(>S#_!OJ[AD$>0P&%Y. MAO,0=B5"N5G>Z<0L<8^9@6V1I EA(+L"X;B237_L*>O\96.,:\[.7BB!CKH; M8U0;?;,\W-G1S_7TW*!RE)1^I5V,7,57GN\$-T[<>WKOGDEY?T324[P2/)"B MD[_U56S[Y^A4]PUG80R_<,1O$)R@T!*$+51H-@HD#X]6=:VP*TN<&GR M!NNDW'3."+&\1=RVX;CVM6%^<7VU'$WFP]EL,9V//HR'K=,Z4X]2C [&LI(; M.'E4'#VUP20IYFTHHRWE-=H@J0<&D^5L,6FU*(?B#93G'(S;L'G!F]E\WK U MYK5L@:BAZ+.HMVIT;ZV$C@V+XK29Z1TB' %!'>$$Q/\6<,NBU- '?OH"-4U; M0(U<*XJGD<3Q=8<[/#F^7Z[ "$E9R\;;:L&[/DP6XW%=FN"J)G_X8T1KC#;E 3+NW'O1L=.SUDWP$G.=G3I@8