summaryrefslogtreecommitdiffstats
path: root/net/ipv4/ipip.c
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1998-03-17 22:05:47 +0000
committerRalf Baechle <ralf@linux-mips.org>1998-03-17 22:05:47 +0000
commit27cfca1ec98e91261b1a5355d10a8996464b63af (patch)
tree8e895a53e372fa682b4c0a585b9377d67ed70d0e /net/ipv4/ipip.c
parent6a76fb7214c477ccf6582bd79c5b4ccc4f9c41b1 (diff)
Look Ma' what I found on my harddisk ...
o New faster syscalls for 2.1.x, too o Upgrade to 2.1.89. Don't try to run this. It's flaky as hell. But feel free to debug ...
Diffstat (limited to 'net/ipv4/ipip.c')
-rw-r--r--net/ipv4/ipip.c25
1 files changed, 12 insertions, 13 deletions
diff --git a/net/ipv4/ipip.c b/net/ipv4/ipip.c
index 565116ffc..949661f41 100644
--- a/net/ipv4/ipip.c
+++ b/net/ipv4/ipip.c
@@ -1,7 +1,7 @@
/*
* Linux NET3: IP/IP protocol decoder.
*
- * Version: $Id: ipip.c,v 1.19 1997/11/08 17:50:21 kuznet Exp $
+ * Version: $Id: ipip.c,v 1.4 1997/12/16 05:37:42 ralf Exp $
*
* Authors:
* Sam Lantinga (slouken@cs.ucdavis.edu) 02/01/95
@@ -93,7 +93,6 @@
*/
-#include <linux/config.h>
#include <linux/module.h>
#include <linux/types.h>
#include <linux/sched.h>
@@ -384,7 +383,7 @@ void ipip_err(struct sk_buff *skb, unsigned char *dp, int len)
/* Try to guess incoming interface */
if (ip_route_output(&rt, eiph->saddr, 0, RT_TOS(eiph->tos), 0)) {
- kfree_skb(skb2, FREE_WRITE);
+ kfree_skb(skb2);
return;
}
skb2->dev = rt->u.dst.dev;
@@ -396,14 +395,14 @@ void ipip_err(struct sk_buff *skb, unsigned char *dp, int len)
if (ip_route_output(&rt, eiph->daddr, eiph->saddr, eiph->tos, 0) ||
rt->u.dst.dev->type != ARPHRD_IPGRE) {
ip_rt_put(rt);
- kfree_skb(skb2, FREE_WRITE);
+ kfree_skb(skb2);
return;
}
} else {
ip_rt_put(rt);
if (ip_route_input(skb2, eiph->daddr, eiph->saddr, eiph->tos, skb2->dev) ||
skb2->dst->dev->type != ARPHRD_IPGRE) {
- kfree_skb(skb2, FREE_WRITE);
+ kfree_skb(skb2);
return;
}
}
@@ -411,7 +410,7 @@ void ipip_err(struct sk_buff *skb, unsigned char *dp, int len)
/* change mtu on this route */
if (type == ICMP_DEST_UNREACH && code == ICMP_FRAG_NEEDED) {
if (rel_info > skb2->dst->pmtu) {
- kfree_skb(skb2, FREE_WRITE);
+ kfree_skb(skb2);
return;
}
skb2->dst->pmtu = rel_info;
@@ -425,7 +424,7 @@ void ipip_err(struct sk_buff *skb, unsigned char *dp, int len)
}
icmp_send(skb2, rel_type, rel_code, rel_info);
- kfree_skb(skb2, FREE_WRITE);
+ kfree_skb(skb2);
return;
#endif
}
@@ -454,7 +453,7 @@ int ipip_rcv(struct sk_buff *skb, unsigned short len)
}
icmp_send(skb, ICMP_DEST_UNREACH, ICMP_PROT_UNREACH, 0);
- kfree_skb(skb, FREE_READ);
+ kfree_skb(skb);
return 0;
}
@@ -531,7 +530,7 @@ static int ipip_tunnel_xmit(struct sk_buff *skb, struct device *dev)
if (tunnel->err_count > 0) {
if (jiffies - tunnel->err_time < IPTUNNEL_ERR_TIMEO) {
tunnel->err_count--;
- icmp_send(skb, ICMP_DEST_UNREACH, ICMP_HOST_UNREACH, 0);
+ dst_link_failure(skb);
} else
tunnel->err_count = 0;
}
@@ -548,11 +547,11 @@ static int ipip_tunnel_xmit(struct sk_buff *skb, struct device *dev)
if (!new_skb) {
ip_rt_put(rt);
stats->tx_dropped++;
- dev_kfree_skb(skb, FREE_WRITE);
+ dev_kfree_skb(skb);
tunnel->recursion--;
return 0;
}
- dev_kfree_skb(skb, FREE_WRITE);
+ dev_kfree_skb(skb);
skb = new_skb;
}
@@ -588,10 +587,10 @@ static int ipip_tunnel_xmit(struct sk_buff *skb, struct device *dev)
return 0;
tx_error_icmp:
- icmp_send(skb, ICMP_DEST_UNREACH, ICMP_HOST_UNREACH, 0);
+ dst_link_failure(skb);
tx_error:
stats->tx_errors++;
- dev_kfree_skb(skb, FREE_WRITE);
+ dev_kfree_skb(skb);
tunnel->recursion--;
return 0;
}