]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - net/ipv4/xfrm4_policy.c
cpumask: introduce new API, without changing anything, v3
[linux-2.6-omap-h63xx.git] / net / ipv4 / xfrm4_policy.c
index 5ccae3a463c244f8837e826d5142064cead24071..c63de0a72aba746184e1c4e9f97aefe57cdff1a8 100644 (file)
@@ -36,7 +36,7 @@ static struct dst_entry *xfrm4_dst_lookup(int tos, xfrm_address_t *saddr,
        if (saddr)
                fl.fl4_src = saddr->a4;
 
-       err = __ip_route_output_key(&rt, &fl);
+       err = __ip_route_output_key(&init_net, &rt, &fl);
        dst = &rt->u.dst;
        if (err)
                dst = ERR_PTR(err);
@@ -84,6 +84,12 @@ static int xfrm4_get_tos(struct flowi *fl)
        return fl->fl4_tos;
 }
 
+static int xfrm4_init_path(struct xfrm_dst *path, struct dst_entry *dst,
+                          int nfheader_len)
+{
+       return 0;
+}
+
 static int xfrm4_fill_dst(struct xfrm_dst *xdst, struct net_device *dev)
 {
        struct rtable *rt = (struct rtable *)xdst->route;
@@ -179,7 +185,7 @@ _decode_session4(struct sk_buff *skb, struct flowi *fl, int reverse)
        fl->fl4_tos = iph->tos;
 }
 
-static inline int xfrm4_garbage_collect(void)
+static inline int xfrm4_garbage_collect(struct dst_ops *ops)
 {
        xfrm4_policy_afinfo.garbage_collect();
        return (atomic_read(&xfrm4_dst_ops.entries) > xfrm4_dst_ops.gc_thresh*2);
@@ -215,7 +221,7 @@ static void xfrm4_dst_ifdown(struct dst_entry *dst, struct net_device *dev,
        xdst = (struct xfrm_dst *)dst;
        if (xdst->u.rt.idev->dev == dev) {
                struct in_device *loopback_idev =
-                       in_dev_get(dev->nd_net->loopback_dev);
+                       in_dev_get(dev_net(dev)->loopback_dev);
                BUG_ON(!loopback_idev);
 
                do {
@@ -241,6 +247,7 @@ static struct dst_ops xfrm4_dst_ops = {
        .local_out =            __ip_local_out,
        .gc_thresh =            1024,
        .entry_size =           sizeof(struct xfrm_dst),
+       .entries =              ATOMIC_INIT(0),
 };
 
 static struct xfrm_policy_afinfo xfrm4_policy_afinfo = {
@@ -251,6 +258,7 @@ static struct xfrm_policy_afinfo xfrm4_policy_afinfo = {
        .find_bundle =          __xfrm4_find_bundle,
        .decode_session =       _decode_session4,
        .get_tos =              xfrm4_get_tos,
+       .init_path =            xfrm4_init_path,
        .fill_dst =             xfrm4_fill_dst,
 };