diff options
author | Olof Johansson <olof@lixom.net> | 2012-03-13 17:38:09 -0700 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2012-03-13 17:38:09 -0700 |
commit | ae0b82504e515fdb9bc23c0b770d2b30efd49dc9 (patch) | |
tree | 665d1f26b32f9e68346a9529388fbadec519e865 /net/ipv4/route.c | |
parent | f7c8faedf98aa5ec372e0191078ac7fe1e7fb067 (diff) | |
parent | a6e24019468009a21b674e392d74283a90f415dd (diff) |
Merge branch 'soc' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/renesas into next/soc
* 'soc' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/renesas: (234 commits)
ARM: shmobile: remove additional __io() macro use
ARM: mach-shmobile: default to no earlytimer
ARM: mach-shmobile: r8a7779 and Marzen timer rework
ARM: mach-shmobile: r8a7740 and Bonito timer rework
ARM: mach-shmobile: sh73a0, AG5EVM and Kota2 timer rework
ARM: mach-shmobile: sh7372, AP4EVB and Mackerel timer rework
ARM: mach-shmobile: sh7377 and G4EVM timer rework
ARM: mach-shmobile: sh7367 and G3EVM timer rework
ARM: mach-shmobile: add shmobile_earlytimer_init()
ARM: mach-shmobile: Move sh7372 AP4EVB external clk setup
ARM: mach-shmobile: Move sh7372 Mackerel external clk setup
ARM: mach-shmobile: rename clk_init() to shmobile_clk_init()
ARM: mach-shmobile: r8a7779 L2 cache support
ARM: mach-shmobile: r8a7779 map_io and init_early update
ARM: mach-shmobile: r8a7740 map_io and init_early update
ARM: mach-shmobile: sh73a0 map_io and init_early update
ARM: mach-shmobile: sh7372 map_io and init_early update
ARM: mach-shmobile: sh7377 map_io and init_early update
ARM: mach-shmobile: sh7367 map_io and init_early update
sh: remove clk_ops
...
(includes an update to v3.3-rc7)
Conflicts:
arch/arm/mach-omap2/id.c
Diffstat (limited to 'net/ipv4/route.c')
-rw-r--r-- | net/ipv4/route.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/net/ipv4/route.c b/net/ipv4/route.c index bcacf54e5418..019774796174 100644 --- a/net/ipv4/route.c +++ b/net/ipv4/route.c @@ -132,7 +132,6 @@ static int ip_rt_mtu_expires __read_mostly = 10 * 60 * HZ; static int ip_rt_min_pmtu __read_mostly = 512 + 20 + 20; static int ip_rt_min_advmss __read_mostly = 256; static int rt_chain_length_max __read_mostly = 20; -static int redirect_genid; static struct delayed_work expires_work; static unsigned long expires_ljiffies; @@ -937,7 +936,7 @@ static void rt_cache_invalidate(struct net *net) get_random_bytes(&shuffle, sizeof(shuffle)); atomic_add(shuffle + 1U, &net->ipv4.rt_genid); - redirect_genid++; + inetpeer_invalidate_tree(AF_INET); } /* @@ -1485,10 +1484,8 @@ void ip_rt_redirect(__be32 old_gw, __be32 daddr, __be32 new_gw, peer = rt->peer; if (peer) { - if (peer->redirect_learned.a4 != new_gw || - peer->redirect_genid != redirect_genid) { + if (peer->redirect_learned.a4 != new_gw) { peer->redirect_learned.a4 = new_gw; - peer->redirect_genid = redirect_genid; atomic_inc(&__rt_peer_genid); } check_peer_redir(&rt->dst, peer); @@ -1793,8 +1790,6 @@ static void ipv4_validate_peer(struct rtable *rt) if (peer) { check_peer_pmtu(&rt->dst, peer); - if (peer->redirect_genid != redirect_genid) - peer->redirect_learned.a4 = 0; if (peer->redirect_learned.a4 && peer->redirect_learned.a4 != rt->rt_gateway) check_peer_redir(&rt->dst, peer); @@ -1958,8 +1953,7 @@ static void rt_init_metrics(struct rtable *rt, const struct flowi4 *fl4, dst_init_metrics(&rt->dst, peer->metrics, false); check_peer_pmtu(&rt->dst, peer); - if (peer->redirect_genid != redirect_genid) - peer->redirect_learned.a4 = 0; + if (peer->redirect_learned.a4 && peer->redirect_learned.a4 != rt->rt_gateway) { rt->rt_gateway = peer->redirect_learned.a4; |