diff options
author | Sandeep Malik <Sandeep.Malik@freescale.com> | 2012-03-16 18:41:21 (GMT) |
---|---|---|
committer | Emil Medve <Emilian.Medve@Freescale.com> | 2013-03-21 18:42:12 (GMT) |
commit | d6f980c22a79c7db1c5a2f918fa9d3a28d105adf (patch) | |
tree | df6a2f743cb12523570ebff7db43e96232858405 /net/xfrm/xfrm_input.c | |
parent | 9126496b944c60065992c6d7b9677ce2a3582dd8 (diff) | |
download | linux-fsl-qoriq-d6f980c22a79c7db1c5a2f918fa9d3a28d105adf.tar.xz |
xfrm: Add hooks for ASF IPsecdd hooks for ASF IPsec
cherry picked and merged from commit 9586eb2dd0a560c9b5729aba64e0f08199632ba5
Diffstat (limited to 'net/xfrm/xfrm_input.c')
-rw-r--r-- | net/xfrm/xfrm_input.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/net/xfrm/xfrm_input.c b/net/xfrm/xfrm_input.c index ab2bb42..dafbb09 100644 --- a/net/xfrm/xfrm_input.c +++ b/net/xfrm/xfrm_input.c @@ -173,6 +173,18 @@ int xfrm_input(struct sk_buff *skb, int nexthdr, __be32 spi, int encap_type) goto drop_unlock; } +#ifdef CONFIG_AS_FASTPATH + if (!x->asf_sa_cookie && asf_cb_fns.ipsec_dec_hook) + asf_cb_fns.ipsec_dec_hook(NULL, x, NULL, skb->skb_iif); + + spin_unlock(&x->lock); + if (x->asf_sa_cookie && asf_cb_fns.ipsec_decrypt_n_send) { + if (!asf_cb_fns.ipsec_decrypt_n_send(skb, x)) + return 0; + } + spin_lock(&x->lock); +#endif + if (x->repl->check(x, skb, seq)) { XFRM_INC_STATS(net, LINUX_MIB_XFRMINSTATESEQERROR); goto drop_unlock; |