summaryrefslogtreecommitdiffstats
path: root/net/ipv4/ip_input.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@ppc970.osdl.org>2005-06-28 21:24:32 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-06-28 21:24:32 -0700
commita839688362e32f01608838516036697e30618b39 (patch)
treea174d93d568ba9735b13bb6ebb5f1a36c8f56308 /net/ipv4/ip_input.c
parent2fa938b8a3964c21b23d9d095091e7abc88249c5 (diff)
parent12dc2fdd3e6067f5137e4a6d8af0b1a994952f52 (diff)
downloadkernel-crypto-a839688362e32f01608838516036697e30618b39.tar.gz
kernel-crypto-a839688362e32f01608838516036697e30618b39.tar.xz
kernel-crypto-a839688362e32f01608838516036697e30618b39.zip
Merge rsync://rsync.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
Diffstat (limited to 'net/ipv4/ip_input.c')
-rw-r--r--net/ipv4/ip_input.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/net/ipv4/ip_input.c b/net/ipv4/ip_input.c
index af2ec88bbb2..c703528e0bc 100644
--- a/net/ipv4/ip_input.c
+++ b/net/ipv4/ip_input.c
@@ -283,14 +283,18 @@ static inline int ip_rcv_finish(struct sk_buff *skb)
{
struct net_device *dev = skb->dev;
struct iphdr *iph = skb->nh.iph;
+ int err;
/*
* Initialise the virtual path cache for the packet. It describes
* how the packet travels inside Linux networking.
*/
if (skb->dst == NULL) {
- if (ip_route_input(skb, iph->daddr, iph->saddr, iph->tos, dev))
+ if ((err = ip_route_input(skb, iph->daddr, iph->saddr, iph->tos, dev))) {
+ if (err == -EHOSTUNREACH)
+ IP_INC_STATS_BH(IPSTATS_MIB_INADDRERRORS);
goto drop;
+ }
}
#ifdef CONFIG_NET_CLS_ROUTE