|
@@ -1894,38 +1894,6 @@ done:
|
|
|
return err;
|
|
|
}
|
|
|
|
|
|
-int __l2cap_wait_ack(struct sock *sk)
|
|
|
-{
|
|
|
- struct l2cap_chan *chan = l2cap_pi(sk)->chan;
|
|
|
- DECLARE_WAITQUEUE(wait, current);
|
|
|
- int err = 0;
|
|
|
- int timeo = HZ/5;
|
|
|
-
|
|
|
- add_wait_queue(sk_sleep(sk), &wait);
|
|
|
- set_current_state(TASK_INTERRUPTIBLE);
|
|
|
- while (chan->unacked_frames > 0 && chan->conn) {
|
|
|
- if (!timeo)
|
|
|
- timeo = HZ/5;
|
|
|
-
|
|
|
- if (signal_pending(current)) {
|
|
|
- err = sock_intr_errno(timeo);
|
|
|
- break;
|
|
|
- }
|
|
|
-
|
|
|
- release_sock(sk);
|
|
|
- timeo = schedule_timeout(timeo);
|
|
|
- lock_sock(sk);
|
|
|
- set_current_state(TASK_INTERRUPTIBLE);
|
|
|
-
|
|
|
- err = sock_error(sk);
|
|
|
- if (err)
|
|
|
- break;
|
|
|
- }
|
|
|
- set_current_state(TASK_RUNNING);
|
|
|
- remove_wait_queue(sk_sleep(sk), &wait);
|
|
|
- return err;
|
|
|
-}
|
|
|
-
|
|
|
static void l2cap_monitor_timeout(struct work_struct *work)
|
|
|
{
|
|
|
struct l2cap_chan *chan = container_of(work, struct l2cap_chan,
|