aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/net/xfrm.h16
-rw-r--r--net/ipv6/route.c7
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
842} 842}
843 843
844#ifdef CONFIG_XFRM 844#ifdef CONFIG_XFRM
845
846extern int __xfrm_policy_check(struct sock *, int dir, struct sk_buff *skb, unsigned short family); 845extern int __xfrm_policy_check(struct sock *, int dir, struct sk_buff *skb, unsigned short family);
847 846
848static inline int xfrm_policy_check(struct sock *sk, int dir, struct sk_buff *skb, unsigned short family) 847static inline int xfrm_policy_check(struct sock *sk, int dir, struct sk_buff *skb, unsigned short family)
@@ -1066,12 +1065,23 @@ struct xfrm6_tunnel {
1066 1065
1067extern void xfrm_init(void); 1066extern void xfrm_init(void);
1068extern void xfrm4_init(void); 1067extern void xfrm4_init(void);
1069extern int xfrm6_init(void);
1070extern void xfrm6_fini(void);
1071extern void xfrm_state_init(void); 1068extern void xfrm_state_init(void);
1072extern void xfrm4_state_init(void); 1069extern void xfrm4_state_init(void);
1070#ifdef CONFIG_XFRM
1071extern int xfrm6_init(void);
1072extern void xfrm6_fini(void);
1073extern int xfrm6_state_init(void); 1073extern int xfrm6_state_init(void);
1074extern void xfrm6_state_fini(void); 1074extern void xfrm6_state_fini(void);
1075#else
1076static inline int xfrm6_init(void)
1077{
1078 return 0;
1079}
1080static inline void xfrm6_fini(void)
1081{
1082 ;
1083}
1084#endif
1075 1085
1076extern int xfrm_state_walk(u8 proto, int (*func)(struct xfrm_state *, int, void*), void *); 1086extern int xfrm_state_walk(u8 proto, int (*func)(struct xfrm_state *, int, void*), void *);
1077extern struct xfrm_state *xfrm_state_alloc(void); 1087extern 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)
2522 if (ret) 2522 if (ret)
2523 goto out_fib6_init; 2523 goto out_fib6_init;
2524 2524
2525#ifdef CONFIG_XFRM
2526 ret = xfrm6_init(); 2525 ret = xfrm6_init();
2527 if (ret) 2526 if (ret)
2528 goto out_proc_init; 2527 goto out_proc_init;
2529#endif 2528
2530#ifdef CONFIG_IPV6_MULTIPLE_TABLES 2529#ifdef CONFIG_IPV6_MULTIPLE_TABLES
2531 ret = fib6_rules_init(); 2530 ret = fib6_rules_init();
2532 if (ret) 2531 if (ret)
@@ -2547,9 +2546,7 @@ fib6_rules_init:
2547 fib6_rules_cleanup(); 2546 fib6_rules_cleanup();
2548xfrm6_init: 2547xfrm6_init:
2549#endif 2548#endif
2550#ifdef CONFIG_XFRM
2551 xfrm6_fini(); 2549 xfrm6_fini();
2552#endif
2553out_proc_init: 2550out_proc_init:
2554 ipv6_route_proc_fini(&init_net); 2551 ipv6_route_proc_fini(&init_net);
2555out_fib6_init: 2552out_fib6_init:
@@ -2566,9 +2563,7 @@ void ip6_route_cleanup(void)
2566 fib6_rules_cleanup(); 2563 fib6_rules_cleanup();
2567#endif 2564#endif
2568 ipv6_route_proc_fini(&init_net); 2565 ipv6_route_proc_fini(&init_net);
2569#ifdef CONFIG_XFRM
2570 xfrm6_fini(); 2566 xfrm6_fini();
2571#endif
2572 rt6_ifdown(NULL); 2567 rt6_ifdown(NULL);
2573 fib6_gc_cleanup(); 2568 fib6_gc_cleanup();
2574 kmem_cache_destroy(ip6_dst_ops.kmem_cachep); 2569 kmem_cache_destroy(ip6_dst_ops.kmem_cachep);