VServer 1.9.2 (patch-2.6.8.1-vs1.9.2.diff)
[linux-2.6.git] / net / ipv6 / xfrm6_policy.c
index 1041ef9..ab4e40b 100644 (file)
@@ -157,7 +157,7 @@ __xfrm6_bundle_create(struct xfrm_policy *policy, struct xfrm_state **xfrm, int
                /* Copy neighbour for reachability confirmation */
                dst_prev->neighbour     = neigh_clone(rt->u.dst.neighbour);
                dst_prev->input         = rt->u.dst.input;
-               dst_prev->output        = dst_prev->xfrm->type->output;
+               dst_prev->output        = xfrm6_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);
@@ -277,10 +277,12 @@ void __init xfrm6_init(void)
 {
        xfrm6_policy_init();
        xfrm6_state_init();
+       xfrm6_tunnel_init();
 }
 
 void __exit xfrm6_fini(void)
 {
+       xfrm6_tunnel_fini();
        //xfrm6_input_fini();
        xfrm6_policy_fini();
        xfrm6_state_fini();