diff options
Diffstat (limited to 'net/ipv4/arp.c')
| -rw-r--r-- | net/ipv4/arp.c | 41 | 
1 files changed, 4 insertions, 37 deletions
diff --git a/net/ipv4/arp.c b/net/ipv4/arp.c index 1b74d3b6437..96a164aa136 100644 --- a/net/ipv4/arp.c +++ b/net/ipv4/arp.c @@ -97,7 +97,6 @@  #include <linux/init.h>  #include <linux/net.h>  #include <linux/rcupdate.h> -#include <linux/jhash.h>  #include <linux/slab.h>  #ifdef CONFIG_SYSCTL  #include <linux/sysctl.h> @@ -139,8 +138,6 @@ static const struct neigh_ops arp_generic_ops = {  	.error_report =		arp_error_report,  	.output =		neigh_resolve_output,  	.connected_output =	neigh_connected_output, -	.hh_output =		dev_queue_xmit, -	.queue_xmit =		dev_queue_xmit,  };  static const struct neigh_ops arp_hh_ops = { @@ -149,16 +146,12 @@ static const struct neigh_ops arp_hh_ops = {  	.error_report =		arp_error_report,  	.output =		neigh_resolve_output,  	.connected_output =	neigh_resolve_output, -	.hh_output =		dev_queue_xmit, -	.queue_xmit =		dev_queue_xmit,  };  static const struct neigh_ops arp_direct_ops = {  	.family =		AF_INET, -	.output =		dev_queue_xmit, -	.connected_output =	dev_queue_xmit, -	.hh_output =		dev_queue_xmit, -	.queue_xmit =		dev_queue_xmit, +	.output =		neigh_direct_output, +	.connected_output =	neigh_direct_output,  };  static const struct neigh_ops arp_broken_ops = { @@ -167,8 +160,6 @@ static const struct neigh_ops arp_broken_ops = {  	.error_report =		arp_error_report,  	.output =		neigh_compat_output,  	.connected_output =	neigh_compat_output, -	.hh_output =		dev_queue_xmit, -	.queue_xmit =		dev_queue_xmit,  };  struct neigh_table arp_tbl = { @@ -232,7 +223,7 @@ static u32 arp_hash(const void *pkey,  		    const struct net_device *dev,  		    __u32 hash_rnd)  { -	return jhash_2words(*(u32 *)pkey, dev->ifindex, hash_rnd); +	return arp_hashfn(*(u32 *)pkey, dev, hash_rnd);  }  static int arp_constructor(struct neighbour *neigh) @@ -259,7 +250,7 @@ static int arp_constructor(struct neighbour *neigh)  	if (!dev->header_ops) {  		neigh->nud_state = NUD_NOARP;  		neigh->ops = &arp_direct_ops; -		neigh->output = neigh->ops->queue_xmit; +		neigh->output = neigh_direct_output;  	} else {  		/* Good devices (checked by reading texts, but only Ethernet is  		   tested) @@ -518,30 +509,6 @@ EXPORT_SYMBOL(arp_find);  /* END OF OBSOLETE FUNCTIONS */ -int arp_bind_neighbour(struct dst_entry *dst) -{ -	struct net_device *dev = dst->dev; -	struct neighbour *n = dst->neighbour; - -	if (dev == NULL) -		return -EINVAL; -	if (n == NULL) { -		__be32 nexthop = ((struct rtable *)dst)->rt_gateway; -		if (dev->flags & (IFF_LOOPBACK | IFF_POINTOPOINT)) -			nexthop = 0; -		n = __neigh_lookup_errno( -#if defined(CONFIG_ATM_CLIP) || defined(CONFIG_ATM_CLIP_MODULE) -					 dev->type == ARPHRD_ATM ? -					 clip_tbl_hook : -#endif -					 &arp_tbl, &nexthop, dev); -		if (IS_ERR(n)) -			return PTR_ERR(n); -		dst->neighbour = n; -	} -	return 0; -} -  /*   * Check if we can use proxy ARP for this path   */  |