summaryrefslogtreecommitdiffstats
path: root/net/llc/af_llc.c
diff options
context:
space:
mode:
authorJeff Garzik <jgarzik@pobox.com>2005-11-18 13:23:21 -0500
committerJeff Garzik <jgarzik@pobox.com>2005-11-18 13:23:21 -0500
commit638cbac8de9b57345a9446e107b6aebc10b58970 (patch)
treee445fe3a1b8ad718d7ee770ed1c7a43e3eb5a611 /net/llc/af_llc.c
parentf055408957750cf759162c364c2a4dfe19765844 (diff)
parentfc71fe40d2bedcc57d3406bf2050481f8b3441b6 (diff)
Merge branch 'master'
Diffstat (limited to 'net/llc/af_llc.c')
-rw-r--r--net/llc/af_llc.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/llc/af_llc.c b/net/llc/af_llc.c
index 59d02cbbeb9..c3f0b078345 100644
--- a/net/llc/af_llc.c
+++ b/net/llc/af_llc.c
@@ -116,7 +116,9 @@ static int llc_ui_send_data(struct sock* sk, struct sk_buff *skb, int noblock)
struct llc_sock* llc = llc_sk(sk);
int rc = 0;
- if (unlikely(llc_data_accept_state(llc->state) || llc->p_flag)) {
+ if (unlikely(llc_data_accept_state(llc->state) ||
+ llc->remote_busy_flag ||
+ llc->p_flag)) {
long timeout = sock_sndtimeo(sk, noblock);
rc = llc_ui_wait_for_busy_core(sk, timeout);
@@ -542,6 +544,7 @@ static int llc_ui_wait_for_busy_core(struct sock *sk, long timeout)
if (sk_wait_event(sk, &timeout,
(sk->sk_shutdown & RCV_SHUTDOWN) ||
(!llc_data_accept_state(llc->state) &&
+ !llc->remote_busy_flag &&
!llc->p_flag)))
break;
rc = -ERESTARTSYS;