Commit 3b00944c authored by YOSHIFUJI Hideaki's avatar YOSHIFUJI Hideaki

[IPV6]: Make ndisc_dst_alloc() common for later use.

For later use, this patch is renaming ndisc_dst_alloc()
(and related function/structures) to icmp6_dst_alloc()
(and so on).  This patch also removing unused function-
pointer argument for it.
Signed-off-by: default avatarYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
parent 95e41e93
...@@ -73,11 +73,11 @@ extern struct rt6_info *rt6_lookup(struct in6_addr *daddr, ...@@ -73,11 +73,11 @@ extern struct rt6_info *rt6_lookup(struct in6_addr *daddr,
struct in6_addr *saddr, struct in6_addr *saddr,
int oif, int flags); int oif, int flags);
extern struct dst_entry *ndisc_dst_alloc(struct net_device *dev, extern struct dst_entry *icmp6_dst_alloc(struct net_device *dev,
struct neighbour *neigh, struct neighbour *neigh,
struct in6_addr *addr, struct in6_addr *addr);
int (*output)(struct sk_buff *)); extern int icmp6_dst_gc(int *more);
extern int ndisc_dst_gc(int *more);
extern void fib6_force_start_gc(void); extern void fib6_force_start_gc(void);
extern struct rt6_info *addrconf_dst_alloc(struct inet6_dev *idev, extern struct rt6_info *addrconf_dst_alloc(struct inet6_dev *idev,
......
...@@ -1464,7 +1464,7 @@ void fib6_run_gc(unsigned long dummy) ...@@ -1464,7 +1464,7 @@ void fib6_run_gc(unsigned long dummy)
} }
gc_args.more = 0; gc_args.more = 0;
ndisc_dst_gc(&gc_args.more); icmp6_dst_gc(&gc_args.more);
fib6_clean_all(fib6_age, 0, NULL); fib6_clean_all(fib6_age, 0, NULL);
if (gc_args.more) if (gc_args.more)
......
...@@ -462,7 +462,7 @@ static void __ndisc_send(struct net_device *dev, ...@@ -462,7 +462,7 @@ static void __ndisc_send(struct net_device *dev,
icmpv6_flow_init(ndisc_socket->sk, &fl, type, icmpv6_flow_init(ndisc_socket->sk, &fl, type,
saddr, daddr, dev->ifindex); saddr, daddr, dev->ifindex);
dst = ndisc_dst_alloc(dev, neigh, daddr, ip6_output); dst = icmp6_dst_alloc(dev, neigh, daddr);
if (!dst) if (!dst)
return; return;
......
...@@ -904,13 +904,12 @@ static inline unsigned int ipv6_advmss(unsigned int mtu) ...@@ -904,13 +904,12 @@ static inline unsigned int ipv6_advmss(unsigned int mtu)
return mtu; return mtu;
} }
static struct dst_entry *ndisc_dst_gc_list; static struct dst_entry *icmp6_dst_gc_list;
static DEFINE_SPINLOCK(ndisc_lock); static DEFINE_SPINLOCK(icmp6_dst_lock);
struct dst_entry *ndisc_dst_alloc(struct net_device *dev, struct dst_entry *icmp6_dst_alloc(struct net_device *dev,
struct neighbour *neigh, struct neighbour *neigh,
struct in6_addr *addr, struct in6_addr *addr)
int (*output)(struct sk_buff *))
{ {
struct rt6_info *rt; struct rt6_info *rt;
struct inet6_dev *idev = in6_dev_get(dev); struct inet6_dev *idev = in6_dev_get(dev);
...@@ -937,7 +936,7 @@ struct dst_entry *ndisc_dst_alloc(struct net_device *dev, ...@@ -937,7 +936,7 @@ struct dst_entry *ndisc_dst_alloc(struct net_device *dev,
rt->u.dst.metrics[RTAX_HOPLIMIT-1] = 255; rt->u.dst.metrics[RTAX_HOPLIMIT-1] = 255;
rt->u.dst.metrics[RTAX_MTU-1] = ipv6_get_mtu(rt->rt6i_dev); rt->u.dst.metrics[RTAX_MTU-1] = ipv6_get_mtu(rt->rt6i_dev);
rt->u.dst.metrics[RTAX_ADVMSS-1] = ipv6_advmss(dst_mtu(&rt->u.dst)); rt->u.dst.metrics[RTAX_ADVMSS-1] = ipv6_advmss(dst_mtu(&rt->u.dst));
rt->u.dst.output = output; rt->u.dst.output = ip6_output;
#if 0 /* there's no chance to use these for ndisc */ #if 0 /* there's no chance to use these for ndisc */
rt->u.dst.flags = ipv6_addr_type(addr) & IPV6_ADDR_UNICAST rt->u.dst.flags = ipv6_addr_type(addr) & IPV6_ADDR_UNICAST
...@@ -947,10 +946,10 @@ struct dst_entry *ndisc_dst_alloc(struct net_device *dev, ...@@ -947,10 +946,10 @@ struct dst_entry *ndisc_dst_alloc(struct net_device *dev,
rt->rt6i_dst.plen = 128; rt->rt6i_dst.plen = 128;
#endif #endif
spin_lock_bh(&ndisc_lock); spin_lock_bh(&icmp6_dst_lock);
rt->u.dst.next = ndisc_dst_gc_list; rt->u.dst.next = icmp6_dst_gc_list;
ndisc_dst_gc_list = &rt->u.dst; icmp6_dst_gc_list = &rt->u.dst;
spin_unlock_bh(&ndisc_lock); spin_unlock_bh(&icmp6_dst_lock);
fib6_force_start_gc(); fib6_force_start_gc();
...@@ -958,7 +957,7 @@ struct dst_entry *ndisc_dst_alloc(struct net_device *dev, ...@@ -958,7 +957,7 @@ struct dst_entry *ndisc_dst_alloc(struct net_device *dev,
return &rt->u.dst; return &rt->u.dst;
} }
int ndisc_dst_gc(int *more) int icmp6_dst_gc(int *more)
{ {
struct dst_entry *dst, *next, **pprev; struct dst_entry *dst, *next, **pprev;
int freed; int freed;
...@@ -966,8 +965,8 @@ int ndisc_dst_gc(int *more) ...@@ -966,8 +965,8 @@ int ndisc_dst_gc(int *more)
next = NULL; next = NULL;
freed = 0; freed = 0;
spin_lock_bh(&ndisc_lock); spin_lock_bh(&icmp6_dst_lock);
pprev = &ndisc_dst_gc_list; pprev = &icmp6_dst_gc_list;
while ((dst = *pprev) != NULL) { while ((dst = *pprev) != NULL) {
if (!atomic_read(&dst->__refcnt)) { if (!atomic_read(&dst->__refcnt)) {
...@@ -980,7 +979,7 @@ int ndisc_dst_gc(int *more) ...@@ -980,7 +979,7 @@ int ndisc_dst_gc(int *more)
} }
} }
spin_unlock_bh(&ndisc_lock); spin_unlock_bh(&icmp6_dst_lock);
return freed; return freed;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment