From: Patrick McHardy Date: Tue, 19 Jun 2007 05:30:15 +0000 (-0700) Subject: [XFRM]: Fix MTU calculation for non-ESP SAs X-Git-Tag: v2.6.22-rc6~39^2~2 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=281216177a407f78cfd650ee4391afc487577193;p=linux-2.6 [XFRM]: Fix MTU calculation for non-ESP SAs My IPsec MTU optimization patch introduced a regression in MTU calculation for non-ESP SAs, the SA's header_len needs to be subtracted from the MTU if the transform doesn't provide a ->get_mtu() function. Reported-and-tested-by: Marco Berizzi Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller --- diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c index 85f3f43a6c..dfacb9c2a6 100644 --- a/net/xfrm/xfrm_state.c +++ b/net/xfrm/xfrm_state.c @@ -1729,7 +1729,7 @@ int xfrm_state_mtu(struct xfrm_state *x, int mtu) x->type && x->type->get_mtu) res = x->type->get_mtu(x, mtu); else - res = mtu; + res = mtu - x->props.header_len; spin_unlock_bh(&x->lock); return res; }