diff options
| author | Linus Torvalds <[email protected]> | 2010-06-05 07:32:21 -0700 | 
|---|---|---|
| committer | Linus Torvalds <[email protected]> | 2010-06-05 07:32:21 -0700 | 
| commit | ed7dc1dfbcef301407a1e3138a49dc94e5a19d0a (patch) | |
| tree | 2aef7400d404774f0f8a30b6eefb0690a09ec24c /net/ipv4/tcp_ipv4.c | |
| parent | 7926e0bfbbc5ff81ddad0fda831eef7060e40997 (diff) | |
| parent | ca7335948e294faf8adf65f2c95ca18ea78540db (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (30 commits)
  X25: remove duplicated #include
  tcp: use correct net ns in cookie_v4_check()
  rps: tcp: fix rps_sock_flow_table table updates
  ppp_generic: fix multilink fragment sizes
  syncookies: remove Kconfig text line about disabled-by-default
  ixgbe: only check pfc bits in hang logic if pfc is enabled
  net: check for refcount if pop a stacked dst_entry
  ixgbe: return IXGBE_ERR_RAR_INDEX when out of range
  act_pedit: access skb->data safely
  sfc: Store port number in net_device::dev_id
  epic100: Test __BIG_ENDIAN instead of (non-existent) CONFIG_BIG_ENDIAN
  tehuti: return -EFAULT on copy_to_user errors
  isdn/kcapi: return -EFAULT on copy_from_user errors
  e1000e: change logical negate to bitwise
  sfc: Get port number from CS_PORT_NUM, not PCI function number
  cls_u32: use skb_header_pointer() to dereference data safely
  TCP: tcp_hybla: Fix integer overflow in slow start increment
  act_nat: fix the wrong checksum when addr isn't in old_addr/mask
  net/fec: fix pm to survive to suspend/resume
  korina: count RX DMA OVR as rx_fifo_error
  ...
Diffstat (limited to 'net/ipv4/tcp_ipv4.c')
| -rw-r--r-- | net/ipv4/tcp_ipv4.c | 7 | 
1 files changed, 4 insertions, 3 deletions
| diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c index 202cf09c4cd4..fe193e53af44 100644 --- a/net/ipv4/tcp_ipv4.c +++ b/net/ipv4/tcp_ipv4.c @@ -1555,6 +1555,7 @@ int tcp_v4_do_rcv(struct sock *sk, struct sk_buff *skb)  #endif  	if (sk->sk_state == TCP_ESTABLISHED) { /* Fast path */ +		sock_rps_save_rxhash(sk, skb->rxhash);  		TCP_CHECK_TIMER(sk);  		if (tcp_rcv_established(sk, skb, tcp_hdr(skb), skb->len)) {  			rsk = sk; @@ -1579,7 +1580,9 @@ int tcp_v4_do_rcv(struct sock *sk, struct sk_buff *skb)  			}  			return 0;  		} -	} +	} else +		sock_rps_save_rxhash(sk, skb->rxhash); +  	TCP_CHECK_TIMER(sk);  	if (tcp_rcv_state_process(sk, skb, tcp_hdr(skb), skb->len)) { @@ -1672,8 +1675,6 @@ process:  	skb->dev = NULL; -	sock_rps_save_rxhash(sk, skb->rxhash); -  	bh_lock_sock_nested(sk);  	ret = 0;  	if (!sock_owned_by_user(sk)) { |