aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSabrina Dubroca <[email protected]>2025-08-04 09:26:26 +0000
committerSteffen Klassert <[email protected]>2025-08-07 06:07:01 +0000
commit65f079a6c446a939eefe71e6d5957d5d6365fcf9 (patch)
tree90aa92b7e89cbf8e9dd906125a305c7a72af69c7
parentxfrm: restore GSO for SW crypto (diff)
downloadkernel-65f079a6c446a939eefe71e6d5957d5d6365fcf9.tar.gz
kernel-65f079a6c446a939eefe71e6d5957d5d6365fcf9.zip
xfrm: bring back device check in validate_xmit_xfrm
This is partial revert of commit d53dda291bbd993a29b84d358d282076e3d01506. This change causes traffic using GSO with SW crypto running through a NIC capable of HW offload to no longer get segmented during validate_xmit_xfrm, and is unrelated to the bonding use case mentioned in the commit. Fixes: d53dda291bbd ("xfrm: Remove unneeded device check from validate_xmit_xfrm") Signed-off-by: Sabrina Dubroca <[email protected]> Reviewed-by: Cosmin Ratiu <[email protected]> Signed-off-by: Steffen Klassert <[email protected]>
-rw-r--r--net/xfrm/xfrm_device.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/xfrm/xfrm_device.c b/net/xfrm/xfrm_device.c
index 1f88472aaac0..c7a1f080d2de 100644
--- a/net/xfrm/xfrm_device.c
+++ b/net/xfrm/xfrm_device.c
@@ -155,7 +155,8 @@ struct sk_buff *validate_xmit_xfrm(struct sk_buff *skb, netdev_features_t featur
return skb;
}
- if (skb_is_gso(skb) && unlikely(xmit_xfrm_check_overflow(skb))) {
+ if (skb_is_gso(skb) && (unlikely(x->xso.dev != dev) ||
+ unlikely(xmit_xfrm_check_overflow(skb)))) {
struct sk_buff *segs;
/* Packet got rerouted, fixup features and segment it. */