(p32[3] * hash_rnd[3]));
 }
 
-static inline struct neighbour *__ipv6_neigh_lookup(struct neigh_table *tbl, struct net_device *dev, const void *pkey)
+static inline struct neighbour *__ipv6_neigh_lookup(struct net_device *dev, const void *pkey)
 {
        struct neigh_hash_table *nht;
        const u32 *p32 = pkey;
        u32 hash_val;
 
        rcu_read_lock_bh();
-       nht = rcu_dereference_bh(tbl->nht);
+       nht = rcu_dereference_bh(nd_tbl.nht);
        hash_val = ndisc_hashfn(pkey, dev, nht->hash_rnd) >> (32 - nht->hash_shift);
        for (n = rcu_dereference_bh(nht->hash_buckets[hash_val]);
             n != NULL;
 
        struct neighbour *n;
 
        daddr = choose_neigh_daddr(rt, skb, daddr);
-       n = __ipv6_neigh_lookup(&nd_tbl, dst->dev, daddr);
+       n = __ipv6_neigh_lookup(dst->dev, daddr);
        if (n)
                return n;
        return neigh_create(&nd_tbl, daddr, dst->dev);
 
 static int rt6_bind_neighbour(struct rt6_info *rt, struct net_device *dev)
 {
-       struct neighbour *n = __ipv6_neigh_lookup(&nd_tbl, dev, &rt->rt6i_gateway);
+       struct neighbour *n = __ipv6_neigh_lookup(dev, &rt->rt6i_gateway);
        if (!n) {
                n = neigh_create(&nd_tbl, &rt->rt6i_gateway, dev);
                if (IS_ERR(n))