struct hlist_node *node_tmp;
        struct batadv_neigh_node *neigh_node;
        struct batadv_neigh_ifinfo *neigh_ifinfo;
-       struct batadv_algo_ops *bao;
 
        neigh_node = container_of(ref, struct batadv_neigh_node, refcount);
-       bao = neigh_node->orig_node->bat_priv->bat_algo_ops;
 
        hlist_for_each_entry_safe(neigh_ifinfo, node_tmp,
                                  &neigh_node->ifinfo_list, list) {
 
        batadv_hardif_neigh_put(neigh_node->hardif_neigh);
 
-       if (bao->bat_neigh_free)
-               bao->bat_neigh_free(neigh_node);
-
        batadv_hardif_put(neigh_node->if_incoming);
 
        kfree_rcu(neigh_node, rcu);
 
  *  better than neigh2 for their respective outgoing interface from the metric
  *  prospective
  * @bat_neigh_print: print the single hop neighbor list (optional)
- * @bat_neigh_free: free the resources allocated by the routing algorithm for a
- *  neigh_node object
  * @bat_orig_print: print the originator table (optional)
  * @bat_orig_free: free the resources allocated by the routing algorithm for an
  *  orig_node object
                 struct batadv_neigh_node *neigh2,
                 struct batadv_hard_iface *if_outgoing2);
        void (*bat_neigh_print)(struct batadv_priv *priv, struct seq_file *seq);
-       void (*bat_neigh_free)(struct batadv_neigh_node *neigh);
        /* orig_node handling API */
        void (*bat_orig_print)(struct batadv_priv *priv, struct seq_file *seq,
                               struct batadv_hard_iface *hard_iface);