diff options
author | Ralf Baechle <ralf@linux-mips.org> | 1998-03-17 22:05:47 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 1998-03-17 22:05:47 +0000 |
commit | 27cfca1ec98e91261b1a5355d10a8996464b63af (patch) | |
tree | 8e895a53e372fa682b4c0a585b9377d67ed70d0e /net/ipv4/ipip.c | |
parent | 6a76fb7214c477ccf6582bd79c5b4ccc4f9c41b1 (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.c | 25 |
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; } |