struct ethhdr *ethhdr = (struct ethhdr *)skb->data;
        struct batadv_unicast_packet *unicast_packet;
        struct batadv_orig_node *orig_node;
-       struct batadv_neigh_node *neigh_node;
        int ret = NET_RX_DROP;
 
        /* get routing information */
-       if (is_multicast_ether_addr(ethhdr->h_dest)) {
+       if (is_multicast_ether_addr(ethhdr->h_dest))
                orig_node = batadv_gw_get_selected_orig(bat_priv);
-               if (orig_node)
-                       goto find_router;
-       }
-
-       /* check for tt host - increases orig_node refcount.
-        * returns NULL in case of AP isolation
-        */
-       orig_node = batadv_transtable_search(bat_priv, ethhdr->h_source,
-                                            ethhdr->h_dest);
-
-find_router:
-       /* find_router():
-        *  - if orig_node is NULL it returns NULL
-        *  - increases neigh_nodes refcount if found.
-        */
-       neigh_node = batadv_find_router(bat_priv, orig_node, NULL);
+       else
+               /* check for tt host - increases orig_node refcount.
+                * returns NULL in case of AP isolation
+                */
+               orig_node = batadv_transtable_search(bat_priv, ethhdr->h_source,
+                                                    ethhdr->h_dest);
 
-       if (!neigh_node)
+       if (!orig_node)
                goto out;
 
        switch (packet_type) {
                ret = 0;
 
 out:
-       if (neigh_node)
-               batadv_neigh_node_free_ref(neigh_node);
        if (orig_node)
                batadv_orig_node_free_ref(orig_node);
        if (ret == NET_RX_DROP)