diff options
author | David S. Miller <davem@davemloft.net> | 2012-06-27 20:05:06 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-06-27 20:05:06 -0400 |
commit | c10237e077cef50e925f052e49f3b4fead9d71f9 (patch) | |
tree | 5b7418f3a31165ea2e7d119782cad0745cd45792 /net/ipv4/ip_input.c | |
parent | e440cf2ca0a1b075c64016240d46c3aa9d877bbf (diff) |
Revert "ipv4: tcp: dont cache unconfirmed intput dst"
This reverts commit c074da2810c118b3812f32d6754bd9ead2f169e7.
This change has several unwanted side effects:
1) Sockets will cache the DST_NOCACHE route in sk->sk_rx_dst and we'll
thus never create a real cached route.
2) All TCP traffic will use DST_NOCACHE and never use the routing
cache at all.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/ip_input.c')
-rw-r--r-- | net/ipv4/ip_input.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/net/ipv4/ip_input.c b/net/ipv4/ip_input.c index 7be54c8dcbe2..2a39204de5bc 100644 --- a/net/ipv4/ip_input.c +++ b/net/ipv4/ip_input.c | |||
@@ -326,7 +326,6 @@ static int ip_rcv_finish(struct sk_buff *skb) | |||
326 | */ | 326 | */ |
327 | if (skb_dst(skb) == NULL) { | 327 | if (skb_dst(skb) == NULL) { |
328 | int err = -ENOENT; | 328 | int err = -ENOENT; |
329 | bool nocache = false; | ||
330 | 329 | ||
331 | if (sysctl_ip_early_demux) { | 330 | if (sysctl_ip_early_demux) { |
332 | const struct net_protocol *ipprot; | 331 | const struct net_protocol *ipprot; |
@@ -335,13 +334,13 @@ static int ip_rcv_finish(struct sk_buff *skb) | |||
335 | rcu_read_lock(); | 334 | rcu_read_lock(); |
336 | ipprot = rcu_dereference(inet_protos[protocol]); | 335 | ipprot = rcu_dereference(inet_protos[protocol]); |
337 | if (ipprot && ipprot->early_demux) | 336 | if (ipprot && ipprot->early_demux) |
338 | err = ipprot->early_demux(skb, &nocache); | 337 | err = ipprot->early_demux(skb); |
339 | rcu_read_unlock(); | 338 | rcu_read_unlock(); |
340 | } | 339 | } |
341 | 340 | ||
342 | if (err) { | 341 | if (err) { |
343 | err = ip_route_input_noref(skb, iph->daddr, iph->saddr, | 342 | err = ip_route_input_noref(skb, iph->daddr, iph->saddr, |
344 | iph->tos, skb->dev, nocache); | 343 | iph->tos, skb->dev); |
345 | if (unlikely(err)) { | 344 | if (unlikely(err)) { |
346 | if (err == -EXDEV) | 345 | if (err == -EXDEV) |
347 | NET_INC_STATS_BH(dev_net(skb->dev), | 346 | NET_INC_STATS_BH(dev_net(skb->dev), |