It's simpler to just keep these things out until there is a real user
of them, so we can see what the needs actually are, rather than keep
these things around as useless overhead.
Signed-off-by: David S. Miller <davem@davemloft.net>
        int                     (*ndo_set_features)(struct net_device *dev,
                                                    netdev_features_t features);
        int                     (*ndo_neigh_construct)(struct neighbour *n);
-       void                    (*ndo_neigh_destroy)(struct neighbour *n);
 };
 
 /*
 
 #endif
        struct net_device *dev;
        struct neigh_parms *next;
-       int     (*neigh_setup)(struct neighbour *);
        void    (*neigh_cleanup)(struct neighbour *);
        struct neigh_table *tbl;
 
 
                }
        }
 
-       /* Device specific setup. */
-       if (n->parms->neigh_setup &&
-           (error = n->parms->neigh_setup(n)) < 0) {
-               rc = ERR_PTR(error);
-               goto out_neigh_release;
-       }
-
        n->confirmed = jiffies - (n->parms->base_reachable_time << 1);
 
        write_lock_bh(&tbl->lock);
        skb_queue_purge(&neigh->arp_queue);
        neigh->arp_queue_len_bytes = 0;
 
-       if (dev->netdev_ops->ndo_neigh_destroy)
-               dev->netdev_ops->ndo_neigh_destroy(neigh);
-
        dev_put(dev);
        neigh_parms_put(neigh->parms);