Bug 8756
Summary: | Route advmss copied to ALL routes when interface MTU changes | ||
---|---|---|---|
Product: | Networking | Reporter: | Simon Arlott (bugzilla) |
Component: | IPV6 | Assignee: | Hideaki YOSHIFUJI (yoshfuji) |
Status: | CLOSED CODE_FIX | ||
Severity: | normal | ||
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 2.6.20, 2.6.22 | Subsystem: | |
Regression: | --- | Bisected commit-id: |
Description
Simon Arlott
2007-07-14 15:39:29 UTC
Reply-To: simon@fire.lp0.eu 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> --- This fixes http://bugzilla.kernel.org/show_bug.cgi?id=8756 net/ipv6/route.c | 5 +++-- 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; } -- 1.5.0.1 Reply-To: davem@davemloft.net From: Simon Arlott <simon@fire.lp0.eu> Date: Mon, 23 Jul 2007 20:25:45 +0100 > 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> Thanks for fixing this bug Simon, patch applied. |