aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/linux/ipv6.h1
-rw-r--r--net/ipv6/ip6_output.c5
2 files changed, 4 insertions, 2 deletions
diff --git a/include/linux/ipv6.h b/include/linux/ipv6.h
index e0cc9a7db2b5..7bdf6ffe2b49 100644
--- a/include/linux/ipv6.h
+++ b/include/linux/ipv6.h
@@ -250,6 +250,7 @@ struct inet6_skb_parm {
250 250
251#define IP6SKB_XFRM_TRANSFORMED 1 251#define IP6SKB_XFRM_TRANSFORMED 1
252#define IP6SKB_FORWARDED 2 252#define IP6SKB_FORWARDED 2
253#define IP6SKB_REROUTED 4
253}; 254};
254 255
255#define IP6CB(skb) ((struct inet6_skb_parm*)((skb)->cb)) 256#define IP6CB(skb) ((struct inet6_skb_parm*)((skb)->cb))
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
index 236ac7813744..c10a38a71a5e 100644
--- a/net/ipv6/ip6_output.c
+++ b/net/ipv6/ip6_output.c
@@ -172,8 +172,9 @@ int ip6_output(struct sk_buff *skb)
172 return 0; 172 return 0;
173 } 173 }
174 174
175 return NF_HOOK(NFPROTO_IPV6, NF_INET_POST_ROUTING, skb, NULL, dev, 175 return NF_HOOK_COND(NFPROTO_IPV6, NF_INET_POST_ROUTING, skb, NULL, dev,
176 ip6_finish_output); 176 ip6_finish_output,
177 !(IP6CB(skb)->flags & IP6SKB_REROUTED));
177} 178}
178 179
179/* 180/*