diff options
Diffstat (limited to 'net/ipv6/tcp_ipv6.c')
| -rw-r--r-- | net/ipv6/tcp_ipv6.c | 4 | 
1 files changed, 3 insertions, 1 deletions
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c index 56fa12538d4..4f49e5dd41b 100644 --- a/net/ipv6/tcp_ipv6.c +++ b/net/ipv6/tcp_ipv6.c @@ -1622,6 +1622,7 @@ static int tcp_v6_do_rcv(struct sock *sk, struct sk_buff *skb)  		opt_skb = skb_clone(skb, GFP_ATOMIC);  	if (sk->sk_state == TCP_ESTABLISHED) { /* Fast path */ +		sock_rps_save_rxhash(sk, skb->rxhash);  		if (tcp_rcv_established(sk, skb, tcp_hdr(skb), skb->len))  			goto reset;  		if (opt_skb) @@ -1649,7 +1650,8 @@ static int tcp_v6_do_rcv(struct sock *sk, struct sk_buff *skb)  				__kfree_skb(opt_skb);  			return 0;  		} -	} +	} else +		sock_rps_save_rxhash(sk, skb->rxhash);  	if (tcp_rcv_state_process(sk, skb, tcp_hdr(skb), skb->len))  		goto reset;  | 
