diff options
Diffstat (limited to 'net/ipv6/route.c')
-rw-r--r-- | net/ipv6/route.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/net/ipv6/route.c b/net/ipv6/route.c index ad8556e6fd41..7946b53692da 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c | |||
@@ -221,7 +221,7 @@ static struct rt6_info ip6_blk_hole_entry_template = { | |||
221 | /* allocate dst with ip6_dst_ops */ | 221 | /* allocate dst with ip6_dst_ops */ |
222 | static inline struct rt6_info *ip6_dst_alloc(struct dst_ops *ops) | 222 | static inline struct rt6_info *ip6_dst_alloc(struct dst_ops *ops) |
223 | { | 223 | { |
224 | return (struct rt6_info *)dst_alloc(ops); | 224 | return (struct rt6_info *)dst_alloc(ops, 0); |
225 | } | 225 | } |
226 | 226 | ||
227 | static void ip6_dst_destroy(struct dst_entry *dst) | 227 | static void ip6_dst_destroy(struct dst_entry *dst) |
@@ -873,13 +873,12 @@ int ip6_dst_blackhole(struct sock *sk, struct dst_entry **dstp, struct flowi *fl | |||
873 | { | 873 | { |
874 | struct rt6_info *ort = (struct rt6_info *) *dstp; | 874 | struct rt6_info *ort = (struct rt6_info *) *dstp; |
875 | struct rt6_info *rt = (struct rt6_info *) | 875 | struct rt6_info *rt = (struct rt6_info *) |
876 | dst_alloc(&ip6_dst_blackhole_ops); | 876 | dst_alloc(&ip6_dst_blackhole_ops, 1); |
877 | struct dst_entry *new = NULL; | 877 | struct dst_entry *new = NULL; |
878 | 878 | ||
879 | if (rt) { | 879 | if (rt) { |
880 | new = &rt->dst; | 880 | new = &rt->dst; |
881 | 881 | ||
882 | atomic_set(&new->__refcnt, 1); | ||
883 | new->__use = 1; | 882 | new->__use = 1; |
884 | new->input = dst_discard; | 883 | new->input = dst_discard; |
885 | new->output = dst_discard; | 884 | new->output = dst_discard; |