aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-05-17 19:30:26 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-05-17 19:30:26 -0400
commit39c2028531332cab1325637c2100f3189fa1be72 (patch)
treed425172e9caaad2b63a0b5964cc2165c215401fe /net
parent5c7dd710f691d1b44c39e32d2f05b4286ff51f99 (diff)
parent8ce6909f77ba1b7bcdea65cc2388fd1742b6d669 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Pull two networking fixes from David S. Miller: 1) Thanks to Willy Tarreau and Eric Dumazet, we've unlocked a bug that's been present in do_tcp_sendpages() since that function was written in 2002. When we block to wait for memory we have to unconditionally try and push out pending TCP data, otherwise we can block for an unreasonably long amount of time. 2) Fix deadlock in e1000, fixes kernel bugzilla 43132 From Tushar Dave. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: e1000: Prevent reset task killing itself. tcp: do_tcp_sendpages() must try to push data out on oom conditions
Diffstat (limited to 'net')
-rw-r--r--net/ipv4/tcp.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
index 1272a88c2a63..6589e11d57b6 100644
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -851,8 +851,7 @@ new_segment:
851wait_for_sndbuf: 851wait_for_sndbuf:
852 set_bit(SOCK_NOSPACE, &sk->sk_socket->flags); 852 set_bit(SOCK_NOSPACE, &sk->sk_socket->flags);
853wait_for_memory: 853wait_for_memory:
854 if (copied) 854 tcp_push(sk, flags & ~MSG_MORE, mss_now, TCP_NAGLE_PUSH);
855 tcp_push(sk, flags & ~MSG_MORE, mss_now, TCP_NAGLE_PUSH);
856 855
857 if ((err = sk_stream_wait_memory(sk, &timeo)) != 0) 856 if ((err = sk_stream_wait_memory(sk, &timeo)) != 0)
858 goto do_error; 857 goto do_error;