diff options
| author | Herbert Xu <herbert@gondor.apana.org.au> | 2003-07-27 05:22:51 -0700 |
|---|---|---|
| committer | David S. Miller <davem@kernel.bkbits.net> | 2003-07-27 05:22:51 -0700 |
| commit | 3d1e4c8a64243e4ceec7823a3b0e2effcdbaa2f3 (patch) | |
| tree | 04bd2dcda063859bf91869d7dcc35b70d3ec422d /include/net | |
| parent | 596aac2cab7581d015f58ccf7fb97be5d06c06fa (diff) | |
[IPSEC]: Fix SKB secpath refcounting.
When a secpath is COWed, we lose reference to the states.
Diffstat (limited to 'include/net')
| -rw-r--r-- | include/net/xfrm.h | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/include/net/xfrm.h b/include/net/xfrm.h index 7518417182ac..337061ce242e 100644 --- a/include/net/xfrm.h +++ b/include/net/xfrm.h @@ -9,7 +9,6 @@ #include <linux/crypto.h> #include <linux/pfkeyv2.h> #include <linux/in6.h> -#include <linux/slab.h> #include <net/sock.h> #include <net/dst.h> @@ -539,7 +538,6 @@ struct sec_decap_state { struct sec_path { - kmem_cache_t *pool; atomic_t refcnt; int len; struct sec_decap_state x[XFRM_MAX_DEPTH]; @@ -562,6 +560,8 @@ secpath_put(struct sec_path *sp) __secpath_destroy(sp); } +extern struct sec_path *secpath_dup(struct sec_path *src); + static inline int __xfrm4_state_addr_cmp(struct xfrm_tmpl *tmpl, struct xfrm_state *x) { @@ -818,8 +818,7 @@ extern int km_query(struct xfrm_state *x, struct xfrm_tmpl *, struct xfrm_policy extern int km_new_mapping(struct xfrm_state *x, xfrm_address_t *ipaddr, u16 sport); extern void km_policy_expired(struct xfrm_policy *pol, int dir, int hard); -extern void xfrm4_input_init(void); -extern void xfrm6_input_init(void); +extern void xfrm_input_init(void); extern int xfrm_parse_spi(struct sk_buff *skb, u8 nexthdr, u32 *spi, u32 *seq); extern void xfrm_probe_algs(void); |
