struct dst_entry        *from;
        };
        struct dst_entry        *path;
-       struct neighbour __rcu  *_neighbour;
+       void                    *__pad0;
 #ifdef CONFIG_XFRM
        struct xfrm_state       *xfrm;
 #else
        };
 };
 
-static inline struct neighbour *dst_get_neighbour_noref(struct dst_entry *dst)
-{
-       return rcu_dereference(dst->_neighbour);
-}
-
-static inline struct neighbour *dst_get_neighbour_noref_raw(struct dst_entry *dst)
-{
-       return rcu_dereference_raw(dst->_neighbour);
-}
-
-static inline void dst_set_neighbour(struct dst_entry *dst, struct neighbour *neigh)
-{
-       rcu_assign_pointer(dst->_neighbour, neigh);
-}
-
 extern u32 *dst_cow_metrics_generic(struct dst_entry *dst, unsigned long old);
 extern const u32 dst_default_metrics[RTAX_MAX];
 
 
        dst_init_metrics(dst, dst_default_metrics, true);
        dst->expires = 0UL;
        dst->path = dst;
-       RCU_INIT_POINTER(dst->_neighbour, NULL);
 #ifdef CONFIG_XFRM
        dst->xfrm = NULL;
 #endif
 struct dst_entry *dst_destroy(struct dst_entry * dst)
 {
        struct dst_entry *child;
-       struct neighbour *neigh;
 
        smp_rmb();
 
 again:
-       neigh = rcu_dereference_protected(dst->_neighbour, 1);
        child = dst->child;
 
-       if (neigh) {
-               RCU_INIT_POINTER(dst->_neighbour, NULL);
-               neigh_release(neigh);
-       }
-
        if (!(dst->flags & DST_NOCOUNT))
                dst_entries_add(dst->ops, -1);
 
        if (!unregister) {
                dst->input = dst->output = dst_discard;
        } else {
-               struct neighbour *neigh;
-
                dst->dev = dev_net(dst->dev)->loopback_dev;
                dev_hold(dst->dev);
                dev_put(dev);
-               rcu_read_lock();
-               neigh = dst_get_neighbour_noref(dst);
-               if (neigh && neigh->dev == dev) {
-                       neigh->dev = dst->dev;
-                       dev_hold(dst->dev);
-                       dev_put(dev);
-               }
-               rcu_read_unlock();
        }
 }