|
@@ -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;
|