|
@@ -46,7 +46,6 @@ static int xfrm4_transport_output(struct xfrm_state *x, struct sk_buff *skb)
|
|
static int xfrm4_transport_input(struct xfrm_state *x, struct sk_buff *skb)
|
|
static int xfrm4_transport_input(struct xfrm_state *x, struct sk_buff *skb)
|
|
{
|
|
{
|
|
int ihl = skb->data - skb_transport_header(skb);
|
|
int ihl = skb->data - skb_transport_header(skb);
|
|
- struct xfrm_offload *xo = xfrm_offload(skb);
|
|
|
|
|
|
|
|
if (skb->transport_header != skb->network_header) {
|
|
if (skb->transport_header != skb->network_header) {
|
|
memmove(skb_transport_header(skb),
|
|
memmove(skb_transport_header(skb),
|
|
@@ -54,8 +53,7 @@ static int xfrm4_transport_input(struct xfrm_state *x, struct sk_buff *skb)
|
|
skb->network_header = skb->transport_header;
|
|
skb->network_header = skb->transport_header;
|
|
}
|
|
}
|
|
ip_hdr(skb)->tot_len = htons(skb->len + ihl);
|
|
ip_hdr(skb)->tot_len = htons(skb->len + ihl);
|
|
- if (!xo || !(xo->flags & XFRM_GRO))
|
|
|
|
- skb_reset_transport_header(skb);
|
|
|
|
|
|
+ skb_reset_transport_header(skb);
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|