summaryrefslogtreecommitdiff
path: root/net/xfrm/xfrm_input.c
diff options
context:
space:
mode:
authorSandeep Malik <Sandeep.Malik@freescale.com>2012-03-16 18:41:21 (GMT)
committerEmil Medve <Emilian.Medve@Freescale.com>2013-03-21 18:42:12 (GMT)
commitd6f980c22a79c7db1c5a2f918fa9d3a28d105adf (patch)
treedf6a2f743cb12523570ebff7db43e96232858405 /net/xfrm/xfrm_input.c
parent9126496b944c60065992c6d7b9677ce2a3582dd8 (diff)
downloadlinux-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.c12
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;