aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6/route.c
diff options
context:
space:
mode:
authorYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>2007-12-06 19:11:48 -0500
committerYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>2008-03-04 01:18:24 -0500
commit3b00944c5c73c49ef52bf17b66557c43c1d945fe (patch)
tree1b58242063283b24b26a0e060d378efe76157283 /net/ipv6/route.c
parent95e41e93e18d8e1e272ce23d96bae4f17ce11d42 (diff)
[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: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Diffstat (limited to 'net/ipv6/route.c')
-rw-r--r--net/ipv6/route.c27
1 files changed, 13 insertions, 14 deletions
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index 6abe7da45ef7..cd717450fb10 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -904,13 +904,12 @@ static inline unsigned int ipv6_advmss(unsigned int mtu)
904 return mtu; 904 return mtu;
905} 905}
906 906
907static struct dst_entry *ndisc_dst_gc_list; 907static struct dst_entry *icmp6_dst_gc_list;
908static DEFINE_SPINLOCK(ndisc_lock); 908static DEFINE_SPINLOCK(icmp6_dst_lock);
909 909
910struct dst_entry *ndisc_dst_alloc(struct net_device *dev, 910struct dst_entry *icmp6_dst_alloc(struct net_device *dev,
911 struct neighbour *neigh, 911 struct neighbour *neigh,
912 struct in6_addr *addr, 912 struct in6_addr *addr)
913 int (*output)(struct sk_buff *))
914{ 913{
915 struct rt6_info *rt; 914 struct rt6_info *rt;
916 struct inet6_dev *idev = in6_dev_get(dev); 915 struct inet6_dev *idev = in6_dev_get(dev);
@@ -937,7 +936,7 @@ struct dst_entry *ndisc_dst_alloc(struct net_device *dev,
937 rt->u.dst.metrics[RTAX_HOPLIMIT-1] = 255; 936 rt->u.dst.metrics[RTAX_HOPLIMIT-1] = 255;
938 rt->u.dst.metrics[RTAX_MTU-1] = ipv6_get_mtu(rt->rt6i_dev); 937 rt->u.dst.metrics[RTAX_MTU-1] = ipv6_get_mtu(rt->rt6i_dev);
939 rt->u.dst.metrics[RTAX_ADVMSS-1] = ipv6_advmss(dst_mtu(&rt->u.dst)); 938 rt->u.dst.metrics[RTAX_ADVMSS-1] = ipv6_advmss(dst_mtu(&rt->u.dst));
940 rt->u.dst.output = output; 939 rt->u.dst.output = ip6_output;
941 940
942#if 0 /* there's no chance to use these for ndisc */ 941#if 0 /* there's no chance to use these for ndisc */
943 rt->u.dst.flags = ipv6_addr_type(addr) & IPV6_ADDR_UNICAST 942 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 rt->rt6i_dst.plen = 128; 946 rt->rt6i_dst.plen = 128;
948#endif 947#endif
949 948
950 spin_lock_bh(&ndisc_lock); 949 spin_lock_bh(&icmp6_dst_lock);
951 rt->u.dst.next = ndisc_dst_gc_list; 950 rt->u.dst.next = icmp6_dst_gc_list;
952 ndisc_dst_gc_list = &rt->u.dst; 951 icmp6_dst_gc_list = &rt->u.dst;
953 spin_unlock_bh(&ndisc_lock); 952 spin_unlock_bh(&icmp6_dst_lock);
954 953
955 fib6_force_start_gc(); 954 fib6_force_start_gc();
956 955
@@ -958,7 +957,7 @@ out:
958 return &rt->u.dst; 957 return &rt->u.dst;
959} 958}
960 959
961int ndisc_dst_gc(int *more) 960int icmp6_dst_gc(int *more)
962{ 961{
963 struct dst_entry *dst, *next, **pprev; 962 struct dst_entry *dst, *next, **pprev;
964 int freed; 963 int freed;
@@ -966,8 +965,8 @@ int ndisc_dst_gc(int *more)
966 next = NULL; 965 next = NULL;
967 freed = 0; 966 freed = 0;
968 967
969 spin_lock_bh(&ndisc_lock); 968 spin_lock_bh(&icmp6_dst_lock);
970 pprev = &ndisc_dst_gc_list; 969 pprev = &icmp6_dst_gc_list;
971 970
972 while ((dst = *pprev) != NULL) { 971 while ((dst = *pprev) != NULL) {
973 if (!atomic_read(&dst->__refcnt)) { 972 if (!atomic_read(&dst->__refcnt)) {
@@ -980,7 +979,7 @@ int ndisc_dst_gc(int *more)
980 } 979 }
981 } 980 }
982 981
983 spin_unlock_bh(&ndisc_lock); 982 spin_unlock_bh(&icmp6_dst_lock);
984 983
985 return freed; 984 return freed;
986} 985}