summaryrefslogtreecommitdiffstats
path: root/net/core
diff options
context:
space:
mode:
authorSteffen Klassert <steffen.klassert@secunet.com>2017-12-20 10:41:31 +0100
committerSteffen Klassert <steffen.klassert@secunet.com>2017-12-20 10:41:31 +0100
commit3dca3f38cfb8efb8571040568cac7d0025fa5bb1 (patch)
treee1227751f873bae8a696222da5d9d3d1a1e070b9 /net/core
parentMerge branch 'nfp-flower-add-Geneve-tunnel-support' (diff)
downloadlinux-3dca3f38cfb8efb8571040568cac7d0025fa5bb1.tar.xz
linux-3dca3f38cfb8efb8571040568cac7d0025fa5bb1.zip
xfrm: Separate ESP handling from segmentation for GRO packets.
We change the ESP GSO handlers to only segment the packets. The ESP handling and encryption is defered to validate_xmit_xfrm() where this is done for non GRO packets too. This makes the code more robust and prepares for asynchronous crypto handling. Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Diffstat (limited to 'net/core')
-rw-r--r--net/core/dev.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/net/core/dev.c b/net/core/dev.c
index c7db39926769..fb7a24a373d1 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -3083,9 +3083,6 @@ static struct sk_buff *validate_xmit_skb(struct sk_buff *skb, struct net_device
__skb_linearize(skb))
goto out_kfree_skb;
- if (validate_xmit_xfrm(skb, features))
- goto out_kfree_skb;
-
/* If packet is not checksummed and device does not
* support checksumming for this protocol, complete
* checksumming here.
@@ -3102,6 +3099,8 @@ static struct sk_buff *validate_xmit_skb(struct sk_buff *skb, struct net_device
}
}
+ skb = validate_xmit_xfrm(skb, features);
+
return skb;
out_kfree_skb: