This reverts commit
e7cd191f83fd899c233dfbe7dc6d96ef703dcbbd.
While supporting xfrm interfaces in the packet offload API
is needed, this patch does not do the right thing. There are
more things to do to really support xfrm interfaces, so revert
it for now.
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
struct xfrm_state *x = skb_dst(skb)->xfrm;
int family;
int err;
- struct xfrm_offload *xo;
- struct sec_path *sp;
family = (x->xso.type != XFRM_DEV_OFFLOAD_PACKET) ? x->outer_mode.family
: skb_dst(skb)->ops->family;
kfree_skb(skb);
return -EHOSTUNREACH;
}
- sp = secpath_set(skb);
- if (!sp) {
- XFRM_INC_STATS(net, LINUX_MIB_XFRMOUTERROR);
- kfree_skb(skb);
- return -ENOMEM;
- }
-
- sp->olen++;
- sp->xvec[sp->len++] = x;
- xfrm_state_hold(x);
-
- xo = xfrm_offload(skb);
- if (!xo) {
- secpath_reset(skb);
- XFRM_INC_STATS(net, LINUX_MIB_XFRMOUTERROR);
- kfree_skb(skb);
- return -EINVAL;
- }
- xo->flags |= XFRM_XMIT;
return xfrm_output_resume(sk, skb, 0);
}