summaryrefslogtreecommitdiff
path: root/include/net
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2003-07-27 05:22:51 -0700
committerDavid S. Miller <davem@kernel.bkbits.net>2003-07-27 05:22:51 -0700
commit3d1e4c8a64243e4ceec7823a3b0e2effcdbaa2f3 (patch)
tree04bd2dcda063859bf91869d7dcc35b70d3ec422d /include/net
parent596aac2cab7581d015f58ccf7fb97be5d06c06fa (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.h7
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);