--- a37debfeb1b2bcb3309d93fc5d45b5f82e202d6e +++ e48c85f3b95d2335b60a9320cdabc948680de175 @@ -140,10 +140,10 @@ int sk_stream_wait_memory(struct sock *s set_bit(SOCK_NOSPACE, &sk->sk_socket->flags); sk->sk_write_pending++; - sk_wait_event(sk, ¤t_timeo, !sk->sk_err && - !(sk->sk_shutdown & SEND_SHUTDOWN) && - sk_stream_memory_free(sk) && - vm_wait); + sk_wait_event(sk, ¤t_timeo, sk->sk_err || + (sk->sk_shutdown & SEND_SHUTDOWN) || + (sk_stream_memory_free(sk) && + !vm_wait)); sk->sk_write_pending--; if (vm_wait) {