diff options
Diffstat (limited to 'net/xfrm/xfrm_input.c')
-rw-r--r-- | net/xfrm/xfrm_input.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/net/xfrm/xfrm_input.c b/net/xfrm/xfrm_input.c index cb97fda1b6df..4c803f7e74e5 100644 --- a/net/xfrm/xfrm_input.c +++ b/net/xfrm/xfrm_input.c | |||
@@ -81,6 +81,19 @@ int xfrm_parse_spi(struct sk_buff *skb, u8 nexthdr, __be32 *spi, __be32 *seq) | |||
81 | } | 81 | } |
82 | EXPORT_SYMBOL(xfrm_parse_spi); | 82 | EXPORT_SYMBOL(xfrm_parse_spi); |
83 | 83 | ||
84 | int xfrm_prepare_input(struct xfrm_state *x, struct sk_buff *skb) | ||
85 | { | ||
86 | int err; | ||
87 | |||
88 | err = x->outer_mode->afinfo->extract_input(x, skb); | ||
89 | if (err) | ||
90 | return err; | ||
91 | |||
92 | skb->protocol = x->inner_mode->afinfo->eth_proto; | ||
93 | return x->inner_mode->input2(x, skb); | ||
94 | } | ||
95 | EXPORT_SYMBOL(xfrm_prepare_input); | ||
96 | |||
84 | void __init xfrm_input_init(void) | 97 | void __init xfrm_input_init(void) |
85 | { | 98 | { |
86 | secpath_cachep = kmem_cache_create("secpath_cache", | 99 | secpath_cachep = kmem_cache_create("secpath_cache", |