Merge branches 'stable/balloon.cleanup' and 'stable/general.cleanup' of git://git...
[pandora-kernel.git] / net / ipv6 / netfilter.c
index 39aaca2..28bc1f6 100644 (file)
@@ -90,9 +90,18 @@ static int nf_ip6_reroute(struct sk_buff *skb,
        return 0;
 }
 
-static int nf_ip6_route(struct dst_entry **dst, struct flowi *fl)
+static int nf_ip6_route(struct net *net, struct dst_entry **dst,
+                       struct flowi *fl, bool strict)
 {
-       *dst = ip6_route_output(&init_net, NULL, &fl->u.ip6);
+       static const struct ipv6_pinfo fake_pinfo;
+       static const struct inet_sock fake_sk = {
+               /* makes ip6_route_output set RT6_LOOKUP_F_IFACE: */
+               .sk.sk_bound_dev_if = 1,
+               .pinet6 = (struct ipv6_pinfo *) &fake_pinfo,
+       };
+       const void *sk = strict ? &fake_sk : NULL;
+
+       *dst = ip6_route_output(net, sk, &fl->u.ip6);
        return (*dst)->error;
 }