af_x25.c (62910554656cdcd6b6f84a5154c4155aae4ca231) af_x25.c (aa395145165cb06a0d0885221bbe0ce4a564391d)
1/*
2 * X.25 Packet Layer release 002
3 *
4 * This is ALPHA test software. This code may break your machine,
5 * randomly fail to work with new releases, misbehave and/or generally
6 * screw up. It might even work.
7 *
8 * This code REQUIRES 2.1.15 or higher

--- 704 unchanged lines hidden (view full) ---

713 return rc;
714}
715
716static int x25_wait_for_connection_establishment(struct sock *sk)
717{
718 DECLARE_WAITQUEUE(wait, current);
719 int rc;
720
1/*
2 * X.25 Packet Layer release 002
3 *
4 * This is ALPHA test software. This code may break your machine,
5 * randomly fail to work with new releases, misbehave and/or generally
6 * screw up. It might even work.
7 *
8 * This code REQUIRES 2.1.15 or higher

--- 704 unchanged lines hidden (view full) ---

713 return rc;
714}
715
716static int x25_wait_for_connection_establishment(struct sock *sk)
717{
718 DECLARE_WAITQUEUE(wait, current);
719 int rc;
720
721 add_wait_queue_exclusive(sk->sk_sleep, &wait);
721 add_wait_queue_exclusive(sk_sleep(sk), &wait);
722 for (;;) {
723 __set_current_state(TASK_INTERRUPTIBLE);
724 rc = -ERESTARTSYS;
725 if (signal_pending(current))
726 break;
727 rc = sock_error(sk);
728 if (rc) {
729 sk->sk_socket->state = SS_UNCONNECTED;
730 break;
731 }
732 rc = 0;
733 if (sk->sk_state != TCP_ESTABLISHED) {
734 release_sock(sk);
735 schedule();
736 lock_sock(sk);
737 } else
738 break;
739 }
740 __set_current_state(TASK_RUNNING);
722 for (;;) {
723 __set_current_state(TASK_INTERRUPTIBLE);
724 rc = -ERESTARTSYS;
725 if (signal_pending(current))
726 break;
727 rc = sock_error(sk);
728 if (rc) {
729 sk->sk_socket->state = SS_UNCONNECTED;
730 break;
731 }
732 rc = 0;
733 if (sk->sk_state != TCP_ESTABLISHED) {
734 release_sock(sk);
735 schedule();
736 lock_sock(sk);
737 } else
738 break;
739 }
740 __set_current_state(TASK_RUNNING);
741 remove_wait_queue(sk->sk_sleep, &wait);
741 remove_wait_queue(sk_sleep(sk), &wait);
742 return rc;
743}
744
745static int x25_connect(struct socket *sock, struct sockaddr *uaddr,
746 int addr_len, int flags)
747{
748 struct sock *sk = sock->sk;
749 struct x25_sock *x25 = x25_sk(sk);

--- 83 unchanged lines hidden (view full) ---

833 return rc;
834}
835
836static int x25_wait_for_data(struct sock *sk, long timeout)
837{
838 DECLARE_WAITQUEUE(wait, current);
839 int rc = 0;
840
742 return rc;
743}
744
745static int x25_connect(struct socket *sock, struct sockaddr *uaddr,
746 int addr_len, int flags)
747{
748 struct sock *sk = sock->sk;
749 struct x25_sock *x25 = x25_sk(sk);

--- 83 unchanged lines hidden (view full) ---

833 return rc;
834}
835
836static int x25_wait_for_data(struct sock *sk, long timeout)
837{
838 DECLARE_WAITQUEUE(wait, current);
839 int rc = 0;
840
841 add_wait_queue_exclusive(sk->sk_sleep, &wait);
841 add_wait_queue_exclusive(sk_sleep(sk), &wait);
842 for (;;) {
843 __set_current_state(TASK_INTERRUPTIBLE);
844 if (sk->sk_shutdown & RCV_SHUTDOWN)
845 break;
846 rc = -ERESTARTSYS;
847 if (signal_pending(current))
848 break;
849 rc = -EAGAIN;
850 if (!timeout)
851 break;
852 rc = 0;
853 if (skb_queue_empty(&sk->sk_receive_queue)) {
854 release_sock(sk);
855 timeout = schedule_timeout(timeout);
856 lock_sock(sk);
857 } else
858 break;
859 }
860 __set_current_state(TASK_RUNNING);
842 for (;;) {
843 __set_current_state(TASK_INTERRUPTIBLE);
844 if (sk->sk_shutdown & RCV_SHUTDOWN)
845 break;
846 rc = -ERESTARTSYS;
847 if (signal_pending(current))
848 break;
849 rc = -EAGAIN;
850 if (!timeout)
851 break;
852 rc = 0;
853 if (skb_queue_empty(&sk->sk_receive_queue)) {
854 release_sock(sk);
855 timeout = schedule_timeout(timeout);
856 lock_sock(sk);
857 } else
858 break;
859 }
860 __set_current_state(TASK_RUNNING);
861 remove_wait_queue(sk->sk_sleep, &wait);
861 remove_wait_queue(sk_sleep(sk), &wait);
862 return rc;
863}
864
865static int x25_accept(struct socket *sock, struct socket *newsock, int flags)
866{
867 struct sock *sk = sock->sk;
868 struct sock *newsk;
869 struct sk_buff *skb;

--- 975 unchanged lines hidden ---
862 return rc;
863}
864
865static int x25_accept(struct socket *sock, struct socket *newsock, int flags)
866{
867 struct sock *sk = sock->sk;
868 struct sock *newsk;
869 struct sk_buff *skb;

--- 975 unchanged lines hidden ---