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.1422.1.11, 2003-11-13 04:30:53-02:00, acme@conectiva.com.br o BLUETOOTH: use sk_wait_error af_bluetooth.c | 16 ++-------------- l2cap.c | 18 ++++++------------ rfcomm/sock.c | 30 ++++++++++-------------------- sco.c | 18 ++++++------------ 4 files changed, 24 insertions(+), 58 deletions(-) diff -Nru a/net/bluetooth/af_bluetooth.c b/net/bluetooth/af_bluetooth.c --- a/net/bluetooth/af_bluetooth.c Sat Nov 15 17:01:22 2003 +++ b/net/bluetooth/af_bluetooth.c Sat Nov 15 17:01:22 2003 @@ -281,21 +281,9 @@ prepare_to_wait(sk->sk_sleep, &wait, TASK_INTERRUPTIBLE); if (sk_wait_event(sk, &timeo, sk->sk_state == state)) break; - - if (!timeo) { - err = -EAGAIN; + err = sk_wait_error(sk, timeo); + if (err) break; - } - - if (signal_pending(current)) { - err = sock_intr_errno(timeo); - break; - } - - if (sk->sk_err) { - err = sock_error(sk); - break; - } } finish_wait(sk->sk_sleep, &wait); return err; diff -Nru a/net/bluetooth/l2cap.c b/net/bluetooth/l2cap.c --- a/net/bluetooth/l2cap.c Sat Nov 15 17:01:22 2003 +++ b/net/bluetooth/l2cap.c Sat Nov 15 17:01:22 2003 @@ -568,7 +568,7 @@ DEFINE_WAIT(wait); struct sock *sk = sock->sk, *nsk; long timeo; - int err = 0; + int err; lock_sock(sk); @@ -585,24 +585,18 @@ while (1) { prepare_to_wait_exclusive(sk->sk_sleep, &wait, TASK_INTERRUPTIBLE); + err = 0; if (sk_wait_event(sk, &timeo, (nsk = bt_accept_dequeue(sk, newsock)) != NULL)) break; - if (!timeo) { - err = -EAGAIN; + err = sk_wait_error(sk, timeo); + if (err) break; - } - if (sk->sk_state != BT_LISTEN) { - err = -EBADFD; - break; - } - - if (signal_pending(current)) { - err = sock_intr_errno(timeo); + err = -EBADFD; + if (sk->sk_state != BT_LISTEN) break; - } } finish_wait(sk->sk_sleep, &wait); diff -Nru a/net/bluetooth/rfcomm/sock.c b/net/bluetooth/rfcomm/sock.c --- a/net/bluetooth/rfcomm/sock.c Sat Nov 15 17:01:22 2003 +++ b/net/bluetooth/rfcomm/sock.c Sat Nov 15 17:01:22 2003 @@ -412,7 +412,7 @@ DEFINE_WAIT(wait); struct sock *sk = sock->sk, *nsk; long timeo; - int err = 0; + int err; lock_sock(sk); @@ -429,23 +429,16 @@ while (1) { prepare_to_wait_exclusive(sk->sk_sleep, &wait, TASK_INTERRUPTIBLE); + err = 0; if (sk_wait_event(sk, &timeo, (nsk = bt_accept_dequeue(sk, newsock)) != NULL)) break; - if (!timeo) { - err = -EAGAIN; - break; - } - - if (sk->sk_state != BT_LISTEN) { - err = -EBADFD; + err = sk_wait_error(sk, timeo); + if (err) break; - } - - if (signal_pending(current)) { - err = sock_intr_errno(timeo); + err = -EBADFD; + if (sk->sk_state != BT_LISTEN) break; - } } finish_wait(sk->sk_sleep, &wait); @@ -541,7 +534,7 @@ sk->sk_err || (sk->sk_shutdown & RCV_SHUTDOWN))) break; - if (signal_pending(current) || !timeo) + if (__sk_wait_error(timeo)) break; clear_bit(SOCK_ASYNC_WAITDATA, &sk->sk_socket->flags); } @@ -588,11 +581,9 @@ break; timeo = rfcomm_sock_data_wait(sk, timeo); - - if (signal_pending(current)) { - err = sock_intr_errno(timeo); - goto out; - } + err = __sk_wait_error(timeo); + if (err) + break; continue; } @@ -623,7 +614,6 @@ } } while (size); -out: if (atomic_read(&sk->sk_rmem_alloc) <= (sk->sk_rcvbuf >> 2)) rfcomm_dlc_unthrottle(rfcomm_pi(sk)->dlc); diff -Nru a/net/bluetooth/sco.c b/net/bluetooth/sco.c --- a/net/bluetooth/sco.c Sat Nov 15 17:01:22 2003 +++ b/net/bluetooth/sco.c Sat Nov 15 17:01:22 2003 @@ -561,7 +561,7 @@ DEFINE_WAIT(wait); struct sock *sk = sock->sk, *ch; long timeo; - int err = 0; + int err; lock_sock(sk); @@ -578,24 +578,18 @@ while (1) { prepare_to_wait_exclusive(sk->sk_sleep, &wait, TASK_INTERRUPTIBLE); + err = 0; if (sk_wait_event(sk, &timeo, (ch = bt_accept_dequeue(sk, newsock)) != NULL)) break; - if (!timeo) { - err = -EAGAIN; + err = sk_wait_error(sk, timeo); + if (err) break; - } - if (sk->sk_state != BT_LISTEN) { - err = -EBADFD; - break; - } - - if (signal_pending(current)) { - err = sock_intr_errno(timeo); + err = -EBADFD; + if (sk->sk_state != BT_LISTEN) break; - } } finish_wait(sk->sk_sleep, &wait); =================================================================== This BitKeeper patch contains the following changesets: 1.1422.1.11 ## Wrapped with gzip_uu ## M'XL( -XMC\ \6776_B.!2&K\FO\&IN6NV2V,D'\A];K-.2YN9]3Z0KVE> M=%HFG5M3C)^T;]*9GV38<9NFV!&,TID-W-@@F4 PMT4;?.4S#T?MTL^C?3\N_UF"]+M>D6:/>GI(#_3Q6B: MSOTBT_-\9HOJWN5J: F4 KXE"SF5JF2*BK T;,"8%LP.*(A("<]).]N4OQZ% M,\8X51!!7#*A&/5ZA/E, /C8,$)YP%C .*&BPVE'\C:%#J6D,33Y4Y V]<[) MVR[CDV=(2LZO[B_NKJ_OOG;(8VY)/NG_U..B;[,LS;R_"8H'\&Y^;Z?7WO/E M>513[Y3,]*_)V8]'/46MLTHPGFR03!]M@<<^"G*3^J:6+BD'8)2JDH/@JDR, MIF8P!&NLE$/SRC:]%F]Q%IP*44H*7"[%/(T?;.8?S3'.\<;D;.A4!GEJ)@M1 M*$=B+"&@I%* *L$F4BH(]4!3[+ [B7H1][DX$85X+*?DP2'=?,;KT?2PO_JQ MW#MW[!&77)0LC#F47 VH!J983)6V<;*3S)>!G^L$&4NYC\XI&/W0-VEF&U1& M O\FH8F3D.N$AL%EVK$D]RB=_D6(\L^GQ"8X8#\D17C]V4R,, MUI,Q)2%&B)]':%^7G-_UKRZ_W5W\X\+$+LQ+ MR-82? 7;VSK-3M U.LT*OC 2K(8OW!<^1DD;WJD:U0ZYE;ZU=1]"H6#245@W MSR@4G&U0*+AT# G!]J90"$Z$FWH@?D+4%(LZ8ZJFGM7OKRNH[UX1RXATQ$O" M<>SBGLW#G83?:O%[*\FLGN":%:A&[MZ&Q_X/#3F!L/#@LB<#E MXM8Z(OC>1+QC2:Z?=[82L5CP044Y9)7%5,U:40XWBW(,55&.^?Y%.99U40Z= DH2K*#W-%15V8U3^%9F3-)'^<=0