[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>
This commit is contained in:
parent
75314fb383
commit
c35b7e72cd
|
@ -842,7 +842,6 @@ xfrm_state_addr_cmp(struct xfrm_tmpl *tmpl, struct xfrm_state *x, unsigned short
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_XFRM
|
#ifdef CONFIG_XFRM
|
||||||
|
|
||||||
extern int __xfrm_policy_check(struct sock *, int dir, struct sk_buff *skb, unsigned short family);
|
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)
|
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 xfrm_init(void);
|
||||||
extern void xfrm4_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 xfrm_state_init(void);
|
||||||
extern void xfrm4_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 int xfrm6_state_init(void);
|
||||||
extern void xfrm6_state_fini(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 int xfrm_state_walk(u8 proto, int (*func)(struct xfrm_state *, int, void*), void *);
|
||||||
extern struct xfrm_state *xfrm_state_alloc(void);
|
extern struct xfrm_state *xfrm_state_alloc(void);
|
||||||
|
|
|
@ -2522,11 +2522,10 @@ int __init ip6_route_init(void)
|
||||||
if (ret)
|
if (ret)
|
||||||
goto out_fib6_init;
|
goto out_fib6_init;
|
||||||
|
|
||||||
#ifdef CONFIG_XFRM
|
|
||||||
ret = xfrm6_init();
|
ret = xfrm6_init();
|
||||||
if (ret)
|
if (ret)
|
||||||
goto out_proc_init;
|
goto out_proc_init;
|
||||||
#endif
|
|
||||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||||
ret = fib6_rules_init();
|
ret = fib6_rules_init();
|
||||||
if (ret)
|
if (ret)
|
||||||
|
@ -2547,9 +2546,7 @@ fib6_rules_init:
|
||||||
fib6_rules_cleanup();
|
fib6_rules_cleanup();
|
||||||
xfrm6_init:
|
xfrm6_init:
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_XFRM
|
|
||||||
xfrm6_fini();
|
xfrm6_fini();
|
||||||
#endif
|
|
||||||
out_proc_init:
|
out_proc_init:
|
||||||
ipv6_route_proc_fini(&init_net);
|
ipv6_route_proc_fini(&init_net);
|
||||||
out_fib6_init:
|
out_fib6_init:
|
||||||
|
@ -2566,9 +2563,7 @@ void ip6_route_cleanup(void)
|
||||||
fib6_rules_cleanup();
|
fib6_rules_cleanup();
|
||||||
#endif
|
#endif
|
||||||
ipv6_route_proc_fini(&init_net);
|
ipv6_route_proc_fini(&init_net);
|
||||||
#ifdef CONFIG_XFRM
|
|
||||||
xfrm6_fini();
|
xfrm6_fini();
|
||||||
#endif
|
|
||||||
rt6_ifdown(NULL);
|
rt6_ifdown(NULL);
|
||||||
fib6_gc_cleanup();
|
fib6_gc_cleanup();
|
||||||
kmem_cache_destroy(ip6_dst_ops.kmem_cachep);
|
kmem_cache_destroy(ip6_dst_ops.kmem_cachep);
|
||||||
|
|
Loading…
Reference in New Issue