Merge tag 'v3.6-rc5' into for-linus
[cascardo/linux.git] / net / decnet / dn_neigh.c
index ac90f65..3aede1b 100644 (file)
@@ -202,7 +202,7 @@ static int dn_neigh_output_packet(struct sk_buff *skb)
 {
        struct dst_entry *dst = skb_dst(skb);
        struct dn_route *rt = (struct dn_route *)dst;
-       struct neighbour *neigh = dst_get_neighbour_noref(dst);
+       struct neighbour *neigh = rt->n;
        struct net_device *dev = neigh->dev;
        char mac_addr[ETH_ALEN];
        unsigned int seq;
@@ -240,7 +240,7 @@ static int dn_long_output(struct neighbour *neigh, struct sk_buff *skb)
                        kfree_skb(skb);
                        return -ENOBUFS;
                }
-               kfree_skb(skb);
+               consume_skb(skb);
                skb = skb2;
                net_info_ratelimited("dn_long_output: Increasing headroom\n");
        }
@@ -283,7 +283,7 @@ static int dn_short_output(struct neighbour *neigh, struct sk_buff *skb)
                        kfree_skb(skb);
                        return -ENOBUFS;
                }
-               kfree_skb(skb);
+               consume_skb(skb);
                skb = skb2;
                net_info_ratelimited("dn_short_output: Increasing headroom\n");
        }
@@ -322,7 +322,7 @@ static int dn_phase3_output(struct neighbour *neigh, struct sk_buff *skb)
                        kfree_skb(skb);
                        return -ENOBUFS;
                }
-               kfree_skb(skb);
+               consume_skb(skb);
                skb = skb2;
                net_info_ratelimited("dn_phase3_output: Increasing headroom\n");
        }