Skip to content

Commit

Permalink
ipv6: namespace cleanups
Browse files Browse the repository at this point in the history
Running 'make namespacecheck' shows:
  net/ipv6/route.o
    ipv6_route_table_template
    rt6_bind_peer
  net/ipv6/icmp.o
    icmpv6_route_lookup
    ipv6_icmp_table_template

This addresses some of those warnings by:
 * make icmpv6_route_lookup static
 * move inline's out of ip6_route.h since only used into route.c
 * move rt6_bind_peer into route.c

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
stephen hemminger authored and David S. Miller committed Jan 2, 2014
1 parent 1d143d9 commit e824353
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 43 deletions.
20 changes: 0 additions & 20 deletions include/net/ip6_route.h
Original file line number Diff line number Diff line change
Expand Up @@ -51,26 +51,6 @@ static inline unsigned int rt6_flags2srcprefs(int flags)
return (flags >> 3) & 7;
}

void rt6_bind_peer(struct rt6_info *rt, int create);

static inline struct inet_peer *__rt6_get_peer(struct rt6_info *rt, int create)
{
if (rt6_has_peer(rt))
return rt6_peer_ptr(rt);

rt6_bind_peer(rt, create);
return (rt6_has_peer(rt) ? rt6_peer_ptr(rt) : NULL);
}

static inline struct inet_peer *rt6_get_peer(struct rt6_info *rt)
{
return __rt6_get_peer(rt, 0);
}

static inline struct inet_peer *rt6_get_peer_create(struct rt6_info *rt)
{
return __rt6_get_peer(rt, 1);
}

void ip6_route_input(struct sk_buff *skb);

Expand Down
4 changes: 0 additions & 4 deletions include/net/ipv6.h
Original file line number Diff line number Diff line change
Expand Up @@ -267,9 +267,6 @@ void icmpv6_notify(struct sk_buff *skb, u8 type, u8 code, __be32 info);
int icmpv6_push_pending_frames(struct sock *sk, struct flowi6 *fl6,
struct icmp6hdr *thdr, int len);

struct dst_entry *icmpv6_route_lookup(struct net *net, struct sk_buff *skb,
struct sock *sk, struct flowi6 *fl6);

int ip6_ra_control(struct sock *sk, int sel);

int ipv6_parse_hopopts(struct sk_buff *skb);
Expand Down Expand Up @@ -839,7 +836,6 @@ static inline int snmp6_unregister_dev(struct inet6_dev *idev) { return 0; }

#ifdef CONFIG_SYSCTL
extern struct ctl_table ipv6_route_table_template[];
extern struct ctl_table ipv6_icmp_table_template[];

struct ctl_table *ipv6_icmp_sysctl_init(struct net *net);
struct ctl_table *ipv6_route_sysctl_init(struct net *net);
Expand Down
8 changes: 5 additions & 3 deletions net/ipv6/icmp.c
Original file line number Diff line number Diff line change
Expand Up @@ -315,8 +315,10 @@ static void mip6_addr_swap(struct sk_buff *skb)
static inline void mip6_addr_swap(struct sk_buff *skb) {}
#endif

struct dst_entry *icmpv6_route_lookup(struct net *net, struct sk_buff *skb,
struct sock *sk, struct flowi6 *fl6)
static struct dst_entry *icmpv6_route_lookup(struct net *net,
struct sk_buff *skb,
struct sock *sk,
struct flowi6 *fl6)
{
struct dst_entry *dst, *dst2;
struct flowi6 fl2;
Expand Down Expand Up @@ -984,7 +986,7 @@ int icmpv6_err_convert(u8 type, u8 code, int *err)
EXPORT_SYMBOL(icmpv6_err_convert);

#ifdef CONFIG_SYSCTL
struct ctl_table ipv6_icmp_table_template[] = {
static struct ctl_table ipv6_icmp_table_template[] = {
{
.procname = "ratelimit",
.data = &init_net.ipv6.sysctl.icmpv6_time,
Expand Down
46 changes: 30 additions & 16 deletions net/ipv6/route.c
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,36 @@ static struct rt6_info *rt6_get_route_info(struct net *net,
const struct in6_addr *gwaddr, int ifindex);
#endif

static void rt6_bind_peer(struct rt6_info *rt, int create)
{
struct inet_peer_base *base;
struct inet_peer *peer;

base = inetpeer_base_ptr(rt->_rt6i_peer);
if (!base)
return;

peer = inet_getpeer_v6(base, &rt->rt6i_dst.addr, create);
if (peer) {
if (!rt6_set_peer(rt, peer))
inet_putpeer(peer);
}
}

static struct inet_peer *__rt6_get_peer(struct rt6_info *rt, int create)
{
if (rt6_has_peer(rt))
return rt6_peer_ptr(rt);

rt6_bind_peer(rt, create);
return (rt6_has_peer(rt) ? rt6_peer_ptr(rt) : NULL);
}

static struct inet_peer *rt6_get_peer_create(struct rt6_info *rt)
{
return __rt6_get_peer(rt, 1);
}

static u32 *ipv6_cow_metrics(struct dst_entry *dst, unsigned long old)
{
struct rt6_info *rt = (struct rt6_info *) dst;
Expand Down Expand Up @@ -312,22 +342,6 @@ static void ip6_dst_destroy(struct dst_entry *dst)
}
}

void rt6_bind_peer(struct rt6_info *rt, int create)
{
struct inet_peer_base *base;
struct inet_peer *peer;

base = inetpeer_base_ptr(rt->_rt6i_peer);
if (!base)
return;

peer = inet_getpeer_v6(base, &rt->rt6i_dst.addr, create);
if (peer) {
if (!rt6_set_peer(rt, peer))
inet_putpeer(peer);
}
}

static void ip6_dst_ifdown(struct dst_entry *dst, struct net_device *dev,
int how)
{
Expand Down

0 comments on commit e824353

Please sign in to comment.