+- add patches.fixes/linux-post-2.6.3-20040220
[linux-flexiantxendom0-3.2.10.git] / net / ipv6 / xfrm6_policy.c
index 2c190d7..d021f12 100644 (file)
@@ -55,13 +55,6 @@ static struct dst_entry *
 __xfrm6_find_bundle(struct flowi *fl, struct rtable *rt, struct xfrm_policy *policy)
 {
        struct dst_entry *dst;
-       u32 ndisc_bit = 0;
-
-       if (fl->proto == IPPROTO_ICMPV6 &&
-           (fl->fl_icmp_type == NDISC_NEIGHBOUR_ADVERTISEMENT ||
-            fl->fl_icmp_type == NDISC_NEIGHBOUR_SOLICITATION  ||
-            fl->fl_icmp_type == NDISC_ROUTER_SOLICITATION))
-               ndisc_bit = RTF_NDISC;
 
        /* Still not clear if we should set fl->fl6_{src,dst}... */
        read_lock_bh(&policy->lock);
@@ -69,9 +62,6 @@ __xfrm6_find_bundle(struct flowi *fl, struct rtable *rt, struct xfrm_policy *pol
                struct xfrm_dst *xdst = (struct xfrm_dst*)dst;
                struct in6_addr fl_dst_prefix, fl_src_prefix;
 
-               if ((xdst->u.rt6.rt6i_flags & RTF_NDISC) != ndisc_bit)
-                       continue;
-
                ipv6_addr_prefix(&fl_dst_prefix,
                                 &fl->fl6_dst,
                                 xdst->u.rt6.rt6i_dst.plen);
@@ -169,7 +159,7 @@ __xfrm6_bundle_create(struct xfrm_policy *policy, struct xfrm_state **xfrm, int
                dst_prev->output        = dst_prev->xfrm->type->output;
                /* Sheit... I remember I did this right. Apparently,
                 * it was magically lost, so this code needs audit */
-               x->u.rt6.rt6i_flags    = rt0->rt6i_flags&(RTCF_BROADCAST|RTCF_MULTICAST|RTCF_LOCAL|RTF_NDISC);
+               x->u.rt6.rt6i_flags    = rt0->rt6i_flags&(RTCF_BROADCAST|RTCF_MULTICAST|RTCF_LOCAL);
                x->u.rt6.rt6i_metric   = rt0->rt6i_metric;
                x->u.rt6.rt6i_node     = rt0->rt6i_node;
                x->u.rt6.rt6i_gateway  = rt0->rt6i_gateway;