extern void                    inet6_ifinfo_notify(int event,
                                                    struct inet6_dev *idev);
 
-static inline struct neighbour * ndisc_get_neigh(struct net_device *dev, const struct in6_addr *addr)
-{
-
-       if (dev)
-               return __neigh_lookup_errno(&nd_tbl, addr, dev);
-
-       return ERR_PTR(-ENODEV);
-}
-
 #endif
 
 #endif
 
        retry:
-               neigh = ndisc_get_neigh(rt->rt6i_dev, &rt->rt6i_gateway);
+               neigh = __neigh_lookup_errno(&nd_tbl, &rt->rt6i_gateway,
+                                            rt->rt6i_dev);
                if (IS_ERR(neigh)) {
                        struct net *net = dev_net(rt->rt6i_dev);
                        int saved_rt_min_interval =
        if (neigh)
                neigh_hold(neigh);
        else {
-               neigh = ndisc_get_neigh(dev, addr);
+               neigh = __neigh_lookup_errno(&nd_tbl, addr, dev);
                if (IS_ERR(neigh))
                        neigh = NULL;
        }
                rt->rt6i_flags |= RTF_ANYCAST;
        else
                rt->rt6i_flags |= RTF_LOCAL;
-       neigh = ndisc_get_neigh(rt->rt6i_dev, &rt->rt6i_gateway);
+       neigh = __neigh_lookup_errno(&nd_tbl, &rt->rt6i_gateway, rt->rt6i_dev);
        if (IS_ERR(neigh)) {
                dst_free(&rt->dst);