aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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 59d02cbbeb9e..c3f0b0783453 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)
116 struct llc_sock* llc = llc_sk(sk); 116 struct llc_sock* llc = llc_sk(sk);
117 int rc = 0; 117 int rc = 0;
118 118
119 if (unlikely(llc_data_accept_state(llc->state) || llc->p_flag)) { 119 if (unlikely(llc_data_accept_state(llc->state) ||
120 llc->remote_busy_flag ||
121 llc->p_flag)) {
120 long timeout = sock_sndtimeo(sk, noblock); 122 long timeout = sock_sndtimeo(sk, noblock);
121 123
122 rc = llc_ui_wait_for_busy_core(sk, timeout); 124 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)
542 if (sk_wait_event(sk, &timeout, 544 if (sk_wait_event(sk, &timeout,
543 (sk->sk_shutdown & RCV_SHUTDOWN) || 545 (sk->sk_shutdown & RCV_SHUTDOWN) ||
544 (!llc_data_accept_state(llc->state) && 546 (!llc_data_accept_state(llc->state) &&
547 !llc->remote_busy_flag &&
545 !llc->p_flag))) 548 !llc->p_flag)))
546 break; 549 break;
547 rc = -ERESTARTSYS; 550 rc = -ERESTARTSYS;