diff options
author | Julian Anastasov <ja@ssi.bg> | 2015-07-09 11:15:27 +0300 |
---|---|---|
committer | Simon Horman <horms@verge.net.au> | 2015-07-14 16:41:27 +0900 |
commit | e3895c0334d0ef46e80f22eaf2a52401ff6d5a67 (patch) | |
tree | 5acd4866415a74002738832f8e0b0236f15f9288 /net | |
parent | 56184858d1fc95c46723436b455cb7261cd8be6f (diff) | |
download | linux-e3895c0334d0ef46e80f22eaf2a52401ff6d5a67.tar.gz linux-e3895c0334d0ef46e80f22eaf2a52401ff6d5a67.tar.bz2 linux-e3895c0334d0ef46e80f22eaf2a52401ff6d5a67.zip |
ipvs: call skb_sender_cpu_clear
Reset XPS's sender_cpu on forwarding.
Signed-off-by: Julian Anastasov <ja@ssi.bg>
Fixes: 2bd82484bb4c ("xps: fix xps for stacked devices")
Signed-off-by: Simon Horman <horms@verge.net.au>
Diffstat (limited to 'net')
-rw-r--r-- | net/netfilter/ipvs/ip_vs_xmit.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/net/netfilter/ipvs/ip_vs_xmit.c b/net/netfilter/ipvs/ip_vs_xmit.c index 34dc1429ebdb..258a0b0e82a2 100644 --- a/net/netfilter/ipvs/ip_vs_xmit.c +++ b/net/netfilter/ipvs/ip_vs_xmit.c @@ -529,6 +529,8 @@ static inline int ip_vs_tunnel_xmit_prepare(struct sk_buff *skb, if (ret == NF_ACCEPT) { nf_reset(skb); skb_forward_csum(skb); + if (!skb->sk) + skb_sender_cpu_clear(skb); } return ret; } @@ -569,6 +571,8 @@ static inline int ip_vs_nat_send_or_cont(int pf, struct sk_buff *skb, if (!local) { skb_forward_csum(skb); + if (!skb->sk) + skb_sender_cpu_clear(skb); NF_HOOK(pf, NF_INET_LOCAL_OUT, NULL, skb, NULL, skb_dst(skb)->dev, dst_output_sk); } else @@ -589,6 +593,8 @@ static inline int ip_vs_send_or_cont(int pf, struct sk_buff *skb, if (!local) { ip_vs_drop_early_demux_sk(skb); skb_forward_csum(skb); + if (!skb->sk) + skb_sender_cpu_clear(skb); NF_HOOK(pf, NF_INET_LOCAL_OUT, NULL, skb, NULL, skb_dst(skb)->dev, dst_output_sk); } else |