diff options
author | Daniel Lezcano <dlezcano@fr.ibm.com> | 2007-12-08 00:14:11 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 14:56:59 -0800 |
commit | c35b7e72cd48bc7163b6900fb3689fa54b572bba (patch) | |
tree | 28e1386d9c0a7522e40d6d77b2c912f88f0e8a36 | |
parent | 75314fb38364c81a573cd222f74d792409a7afba (diff) | |
download | linux-c35b7e72cd48bc7163b6900fb3689fa54b572bba.tar.bz2 |
[IPV6]: remove ifdef in route6 for xfrm6
The following patch create the usual static inline functions to disable
the xfrm6_init and xfrm6_fini function when XFRM is off.
That's allow to remove some ifdef and make the code a little more clear.
Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
Acked-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | include/net/xfrm.h | 16 | ||||
-rw-r--r-- | net/ipv6/route.c | 7 |
2 files changed, 14 insertions, 9 deletions
diff --git a/include/net/xfrm.h b/include/net/xfrm.h index 18260921eeb5..503d0d294a4c 100644 --- a/include/net/xfrm.h +++ b/include/net/xfrm.h @@ -842,7 +842,6 @@ xfrm_state_addr_cmp(struct xfrm_tmpl *tmpl, struct xfrm_state *x, unsigned short } #ifdef CONFIG_XFRM - extern int __xfrm_policy_check(struct sock *, int dir, struct sk_buff *skb, unsigned short family); static inline int xfrm_policy_check(struct sock *sk, int dir, struct sk_buff *skb, unsigned short family) @@ -1066,12 +1065,23 @@ struct xfrm6_tunnel { extern void xfrm_init(void); extern void xfrm4_init(void); -extern int xfrm6_init(void); -extern void xfrm6_fini(void); extern void xfrm_state_init(void); extern void xfrm4_state_init(void); +#ifdef CONFIG_XFRM +extern int xfrm6_init(void); +extern void xfrm6_fini(void); extern int xfrm6_state_init(void); extern void xfrm6_state_fini(void); +#else +static inline int xfrm6_init(void) +{ + return 0; +} +static inline void xfrm6_fini(void) +{ + ; +} +#endif extern int xfrm_state_walk(u8 proto, int (*func)(struct xfrm_state *, int, void*), void *); extern struct xfrm_state *xfrm_state_alloc(void); diff --git a/net/ipv6/route.c b/net/ipv6/route.c index dbdae143ef5f..c4e890abb2d4 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -2522,11 +2522,10 @@ int __init ip6_route_init(void) if (ret) goto out_fib6_init; -#ifdef CONFIG_XFRM ret = xfrm6_init(); if (ret) goto out_proc_init; -#endif + #ifdef CONFIG_IPV6_MULTIPLE_TABLES ret = fib6_rules_init(); if (ret) @@ -2547,9 +2546,7 @@ fib6_rules_init: fib6_rules_cleanup(); xfrm6_init: #endif -#ifdef CONFIG_XFRM xfrm6_fini(); -#endif out_proc_init: ipv6_route_proc_fini(&init_net); out_fib6_init: @@ -2566,9 +2563,7 @@ void ip6_route_cleanup(void) fib6_rules_cleanup(); #endif ipv6_route_proc_fini(&init_net); -#ifdef CONFIG_XFRM xfrm6_fini(); -#endif rt6_ifdown(NULL); fib6_gc_cleanup(); kmem_cache_destroy(ip6_dst_ops.kmem_cachep); |