--- zzzz-none-000/linux-2.6.28.10/net/xfrm/xfrm_state.c 2009-05-02 18:54:43.000000000 +0000 +++ fusiv-7390-686/linux-2.6.28.10/net/xfrm/xfrm_state.c 2012-02-28 14:52:31.000000000 +0000 @@ -24,6 +24,13 @@ #include "xfrm_hash.h" +#if defined(CONFIG_FUSIV_KERNEL_AP_2_AP) || defined(CONFIG_FUSIV_KERNEL_AP_2_AP_MODULE) +#if defined(CONFIG_IPSEC_AP_SUPPORT) +void (*ap2apIPsecRouteFlowDelete_ptr)(struct xfrm_state *x) = NULL; +#endif +#endif + + struct sock *xfrm_nl; EXPORT_SYMBOL(xfrm_nl); @@ -474,8 +481,15 @@ } x->km.dying = warn; - if (warn) + if (warn) { +/*#if defined(CONFIG_FUSIV_KERNEL_AP_2_AP) || defined(CONFIG_FUSIV_KERNEL_AP_2_AP_MODULE) +#if defined(CONFIG_IPSEC_AP_SUPPORT) + if(ap2apIPsecRouteFlowDelete_ptr) + ap2apIPsecRouteFlowDelete_ptr(x); +#endif +#endif*/ km_state_expired(x, 0, 0); + } resched: if (next != LONG_MAX) mod_timer(&x->timer, jiffies + make_jiffies(next)); @@ -553,6 +567,12 @@ if (x->km.state != XFRM_STATE_DEAD) { x->km.state = XFRM_STATE_DEAD; spin_lock(&xfrm_state_lock); +#if defined(CONFIG_FUSIV_KERNEL_AP_2_AP) || defined(CONFIG_FUSIV_KERNEL_AP_2_AP_MODULE) +#if defined(CONFIG_IPSEC_AP_SUPPORT) + if(ap2apIPsecRouteFlowDelete_ptr) + ap2apIPsecRouteFlowDelete_ptr(x); +#endif +#endif list_del(&x->km.all); hlist_del(&x->bydst); hlist_del(&x->bysrc); @@ -2266,3 +2286,8 @@ } EXPORT_SYMBOL_GPL(xfrm_audit_state_icvfail); #endif /* CONFIG_AUDITSYSCALL */ +#if defined(CONFIG_FUSIV_KERNEL_AP_2_AP) || defined(CONFIG_FUSIV_KERNEL_AP_2_AP_MODULE) +#if defined(CONFIG_IPSEC_AP_SUPPORT) +EXPORT_SYMBOL(ap2apIPsecRouteFlowDelete_ptr); +#endif +#endif