aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6
diff options
context:
space:
mode:
authorSimon Arlott <simon@fire.lp0.eu>2007-07-26 00:09:55 -0700
committerDavid S. Miller <davem@sunset.davemloft.net>2007-07-31 02:28:04 -0700
commit566cfd8f0e049a0647f94714f913e2a975dc464f (patch)
tree955049995c9cc06dc2db3b11a73454c09cf8eb18 /net/ipv6
parent342ff7b24f42d01b27d884c699855c713d720fcb (diff)
downloadkernel_samsung_espresso10-566cfd8f0e049a0647f94714f913e2a975dc464f.zip
kernel_samsung_espresso10-566cfd8f0e049a0647f94714f913e2a975dc464f.tar.gz
kernel_samsung_espresso10-566cfd8f0e049a0647f94714f913e2a975dc464f.tar.bz2
[IPV6]: Don't update ADVMSS on routes where the MTU is not also updated
The ADVMSS value was incorrectly updated for ALL routes when the MTU is updated because it's outside the effect of the if statement's condition. Signed-off-by: Simon Arlott <simon@fire.lp0.eu> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6')
-rw-r--r--net/ipv6/route.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index 919de68..55ea80f 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -1983,9 +1983,10 @@ static int rt6_mtu_change_route(struct rt6_info *rt, void *p_arg)
!dst_metric_locked(&rt->u.dst, RTAX_MTU) &&
(dst_mtu(&rt->u.dst) > arg->mtu ||
(dst_mtu(&rt->u.dst) < arg->mtu &&
- dst_mtu(&rt->u.dst) == idev->cnf.mtu6)))
+ dst_mtu(&rt->u.dst) == idev->cnf.mtu6))) {
rt->u.dst.metrics[RTAX_MTU-1] = arg->mtu;
- rt->u.dst.metrics[RTAX_ADVMSS-1] = ipv6_advmss(arg->mtu);
+ rt->u.dst.metrics[RTAX_ADVMSS-1] = ipv6_advmss(arg->mtu);
+ }
return 0;
}