atm: clip: Use device neigh support on top of "arp_tbl".
Instead of instantiating an entire new neigh_table instance just for ATM handling, use the neigh device private facility. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
da6a8fa027
commit
32092ecf06
@@ -112,11 +112,6 @@
|
||||
#include <net/arp.h>
|
||||
#include <net/ax25.h>
|
||||
#include <net/netrom.h>
|
||||
#if defined(CONFIG_ATM_CLIP) || defined(CONFIG_ATM_CLIP_MODULE)
|
||||
#include <net/atmclip.h>
|
||||
struct neigh_table *clip_tbl_hook;
|
||||
EXPORT_SYMBOL(clip_tbl_hook);
|
||||
#endif
|
||||
|
||||
#include <asm/system.h>
|
||||
#include <linux/uaccess.h>
|
||||
|
@@ -108,7 +108,6 @@
|
||||
#ifdef CONFIG_SYSCTL
|
||||
#include <linux/sysctl.h>
|
||||
#endif
|
||||
#include <net/atmclip.h>
|
||||
#include <net/secure_seq.h>
|
||||
|
||||
#define RT_FL_TOS(oldflp4) \
|
||||
@@ -1013,23 +1012,18 @@ static int slow_chain_length(const struct rtable *head)
|
||||
|
||||
static struct neighbour *ipv4_neigh_lookup(const struct dst_entry *dst, const void *daddr)
|
||||
{
|
||||
struct neigh_table *tbl = &arp_tbl;
|
||||
static const __be32 inaddr_any = 0;
|
||||
struct net_device *dev = dst->dev;
|
||||
const __be32 *pkey = daddr;
|
||||
struct neighbour *n;
|
||||
|
||||
#if defined(CONFIG_ATM_CLIP) || defined(CONFIG_ATM_CLIP_MODULE)
|
||||
if (dev->type == ARPHRD_ATM)
|
||||
tbl = clip_tbl_hook;
|
||||
#endif
|
||||
if (dev->flags & (IFF_LOOPBACK | IFF_POINTOPOINT))
|
||||
pkey = &inaddr_any;
|
||||
|
||||
n = __ipv4_neigh_lookup(tbl, dev, *(__force u32 *)pkey);
|
||||
n = __ipv4_neigh_lookup(&arp_tbl, dev, *(__force u32 *)pkey);
|
||||
if (n)
|
||||
return n;
|
||||
return neigh_create(tbl, pkey, dev);
|
||||
return neigh_create(&arp_tbl, pkey, dev);
|
||||
}
|
||||
|
||||
static int rt_bind_neighbour(struct rtable *rt)
|
||||
|
Reference in New Issue
Block a user