Bug #367

Fwd: [PATCH] ipv6: fix rt6_update_expires

Added by David Taht about 1 year ago. Updated about 1 year ago.

Status:Rejected Start date:
Priority:Normal Due date:
Assignee:Dave Täht % Done:

0%

Category:Linux Kernel Spent time: 1.00 hour
Target version:1st Public Cerowrt release

Description

---------- Forwarded message ----------
From: Gao feng <>
Date: Tue, Apr 17, 2012 at 7:24 PM
Subject: Re: [PATCH] ipv6: fix rt6_update_expires
To: Jiri Bohac <>
Cc: David Miller <>,

于 2012年04月16日 21:34, Jiri Bohac 写道:

Commit 1716a961 (ipv6: fix problem with expired dst cache) broke PMTU discovery. rt6_update_expires() calls dst_set_expires(), which only updates dst->expires if it has not been set previously (expires 0) or if the new expires is earlier than the current dst->expires.

rt6_update_expires() needs to zero rt->dst.expires, otherwise it will contain ivalid data left over from rt->dst.from and will confuse dst_set_expires().

Signed-off-by: Jiri Bohac &lt;&gt;

diff --git a/include/net/ip6_fib.h b/include/net/ip6_fib.h index ad4126f..68c1f94 100644 --- a/include/net/ip6_fib.h +++ b/include/net/ip6_fib.h @ -143,8 +143,13 @ static inline void rt6_set_expires(struct rt6_info *rt, unsigned long expires)

 static inline void rt6_update_expires(struct rt6_info *rt, int timeout)  { -     if (!(rt->rt6i_flags & RTF_EXPIRES) && rt->dst.from) -             dst_release(rt->dst.from); +     if (!(rt->rt6i_flags & RTF_EXPIRES)) { +             if (rt->dst.from) +                     dst_release(rt->dst.from); +             /* dst_set_expires relies on expires 0 +                  if it has not been set previously */ +             rt->dst.expires = 0; +     }

      dst_set_expires(&rt->dst, timeout);       rt->rt6i_flags |= RTF_EXPIRES;

looks good to me, thanks.

History

Updated by Dave Täht about 1 year ago

  • Target version set to 1st Public Cerowrt release
  • Assignee set to Dave Täht
  • Status changed from New to Rejected
  • Category set to Linux Kernel

this is a 3.4 issue, now fixed. No need to backport.

Also available in: Atom PDF