Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=23717795bee15470b96f9b7aa5ecf4efe14c8e32
Commit:     23717795bee15470b96f9b7aa5ecf4efe14c8e32
Parent:     fa4d3c6210380c55cf7f295d28fd981fbcbb828c
Author:     Jim Paris <[EMAIL PROTECTED]>
AuthorDate: Thu Jan 31 16:36:25 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Thu Jan 31 19:28:21 2008 -0800

    [IPV6]: Update MSS even if MTU is unchanged.
    
    This is needed because in ndisc.c, we have:
    
      static void ndisc_router_discovery(struct sk_buff *skb)
      {
      // ...
        if (ndopts.nd_opts_mtu) {
      // ...
                        if (rt)
                                rt->u.dst.metrics[RTAX_MTU-1] = mtu;
    
                        rt6_mtu_change(skb->dev, mtu);
      // ...
      }
    
    Since the mtu is set directly here, rt6_mtu_change_route thinks that
    it is unchanged, and so it fails to update the MSS accordingly.  This
    patch lets rt6_mtu_change_route still update MSS if old_mtu == new_mtu.
    
    Signed-off-by: Jim Paris <[EMAIL PROTECTED]>
    Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 net/ipv6/route.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index bf6b665..513f72e 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -1909,7 +1909,7 @@ static int rt6_mtu_change_route(struct rt6_info *rt, void 
*p_arg)
         */
        if (rt->rt6i_dev == arg->dev &&
            !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) < arg->mtu &&
              dst_mtu(&rt->u.dst) == idev->cnf.mtu6))) {
                rt->u.dst.metrics[RTAX_MTU-1] = arg->mtu;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to