diff options
author | Julian Anastasov <ja@ssi.bg> | 2015-07-09 04:15:27 -0400 |
---|---|---|
committer | Simon Horman <horms@verge.net.au> | 2015-07-14 03:41:27 -0400 |
commit | e3895c0334d0ef46e80f22eaf2a52401ff6d5a67 (patch) | |
tree | 5acd4866415a74002738832f8e0b0236f15f9288 /net | |
parent | 56184858d1fc95c46723436b455cb7261cd8be6f (diff) |
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, | |||
529 | if (ret == NF_ACCEPT) { | 529 | if (ret == NF_ACCEPT) { |
530 | nf_reset(skb); | 530 | nf_reset(skb); |
531 | skb_forward_csum(skb); | 531 | skb_forward_csum(skb); |
532 | if (!skb->sk) | ||
533 | skb_sender_cpu_clear(skb); | ||
532 | } | 534 | } |
533 | return ret; | 535 | return ret; |
534 | } | 536 | } |
@@ -569,6 +571,8 @@ static inline int ip_vs_nat_send_or_cont(int pf, struct sk_buff *skb, | |||
569 | 571 | ||
570 | if (!local) { | 572 | if (!local) { |
571 | skb_forward_csum(skb); | 573 | skb_forward_csum(skb); |
574 | if (!skb->sk) | ||
575 | skb_sender_cpu_clear(skb); | ||
572 | NF_HOOK(pf, NF_INET_LOCAL_OUT, NULL, skb, | 576 | NF_HOOK(pf, NF_INET_LOCAL_OUT, NULL, skb, |
573 | NULL, skb_dst(skb)->dev, dst_output_sk); | 577 | NULL, skb_dst(skb)->dev, dst_output_sk); |
574 | } else | 578 | } else |
@@ -589,6 +593,8 @@ static inline int ip_vs_send_or_cont(int pf, struct sk_buff *skb, | |||
589 | if (!local) { | 593 | if (!local) { |
590 | ip_vs_drop_early_demux_sk(skb); | 594 | ip_vs_drop_early_demux_sk(skb); |
591 | skb_forward_csum(skb); | 595 | skb_forward_csum(skb); |
596 | if (!skb->sk) | ||
597 | skb_sender_cpu_clear(skb); | ||
592 | NF_HOOK(pf, NF_INET_LOCAL_OUT, NULL, skb, | 598 | NF_HOOK(pf, NF_INET_LOCAL_OUT, NULL, skb, |
593 | NULL, skb_dst(skb)->dev, dst_output_sk); | 599 | NULL, skb_dst(skb)->dev, dst_output_sk); |
594 | } else | 600 | } else |