aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorEric Dumazet <dada1@cosmosbay.com>2009-05-07 03:20:39 -0400
committerDavid S. Miller <davem@davemloft.net>2009-05-07 17:52:28 -0400
commit7aedec2ad5314b173e78ca3f4edb4ceaa02248bb (patch)
tree9b9ed7561bf13bcaa11f1f6ac7b4da2c444b0044 /include
parentf5f8d86b231e0489c33542c42afbb14d32411ee8 (diff)
tcp: tcp_prequeue() can use keyed wakeups
We can avoid waking up tasks not interested in receive notifications, using wake_up_interruptible_poll() instead of wake_up_interruptible() Signed-off-by: Eric Dumazet <dada1@cosmosbay.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r--include/net/tcp.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/net/tcp.h b/include/net/tcp.h
index ac37228b7001..87d210bb12a4 100644
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -908,7 +908,8 @@ static inline int tcp_prequeue(struct sock *sk, struct sk_buff *skb)
908 908
909 tp->ucopy.memory = 0; 909 tp->ucopy.memory = 0;
910 } else if (skb_queue_len(&tp->ucopy.prequeue) == 1) { 910 } else if (skb_queue_len(&tp->ucopy.prequeue) == 1) {
911 wake_up_interruptible(sk->sk_sleep); 911 wake_up_interruptible_poll(sk->sk_sleep,
912 POLLIN | POLLRDNORM | POLLRDBAND);
912 if (!inet_csk_ack_scheduled(sk)) 913 if (!inet_csk_ack_scheduled(sk))
913 inet_csk_reset_xmit_timer(sk, ICSK_TIME_DACK, 914 inet_csk_reset_xmit_timer(sk, ICSK_TIME_DACK,
914 (3 * TCP_RTO_MIN) / 4, 915 (3 * TCP_RTO_MIN) / 4,