|
@@ -68,7 +68,7 @@ int xfrm4_rcv_encap(struct sk_buff *skb, __u16 encap_type)
|
|
|
{
|
|
|
int err;
|
|
|
u32 spi, seq;
|
|
|
- struct sec_decap_state xfrm_vec[XFRM_MAX_DEPTH];
|
|
|
+ struct xfrm_state *xfrm_vec[XFRM_MAX_DEPTH];
|
|
|
struct xfrm_state *x;
|
|
|
int xfrm_nr = 0;
|
|
|
int decaps = 0;
|
|
@@ -99,7 +99,6 @@ int xfrm4_rcv_encap(struct sk_buff *skb, __u16 encap_type)
|
|
|
if (xfrm_state_check_expire(x))
|
|
|
goto drop_unlock;
|
|
|
|
|
|
- xfrm_vec[xfrm_nr].decap.decap_type = encap_type;
|
|
|
if (x->type->input(x, skb))
|
|
|
goto drop_unlock;
|
|
|
|
|
@@ -114,7 +113,7 @@ int xfrm4_rcv_encap(struct sk_buff *skb, __u16 encap_type)
|
|
|
|
|
|
spin_unlock(&x->lock);
|
|
|
|
|
|
- xfrm_vec[xfrm_nr++].xvec = x;
|
|
|
+ xfrm_vec[xfrm_nr++] = x;
|
|
|
|
|
|
iph = skb->nh.iph;
|
|
|
|
|
@@ -156,7 +155,8 @@ int xfrm4_rcv_encap(struct sk_buff *skb, __u16 encap_type)
|
|
|
if (xfrm_nr + skb->sp->len > XFRM_MAX_DEPTH)
|
|
|
goto drop;
|
|
|
|
|
|
- memcpy(skb->sp->x+skb->sp->len, xfrm_vec, xfrm_nr*sizeof(struct sec_decap_state));
|
|
|
+ memcpy(skb->sp->xvec + skb->sp->len, xfrm_vec,
|
|
|
+ xfrm_nr * sizeof(xfrm_vec[0]));
|
|
|
skb->sp->len += xfrm_nr;
|
|
|
|
|
|
nf_reset(skb);
|
|
@@ -187,7 +187,7 @@ drop_unlock:
|
|
|
xfrm_state_put(x);
|
|
|
drop:
|
|
|
while (--xfrm_nr >= 0)
|
|
|
- xfrm_state_put(xfrm_vec[xfrm_nr].xvec);
|
|
|
+ xfrm_state_put(xfrm_vec[xfrm_nr]);
|
|
|
|
|
|
kfree_skb(skb);
|
|
|
return 0;
|