return batman_if;
 }
 
+static void update_primary_addr(struct bat_priv *bat_priv)
+{
+       struct vis_packet *vis_packet;
+
+       vis_packet = (struct vis_packet *)
+                               bat_priv->my_vis_info->skb_packet->data;
+       memcpy(vis_packet->vis_orig,
+              bat_priv->primary_if->net_dev->dev_addr, ETH_ALEN);
+       memcpy(vis_packet->sender_orig,
+              bat_priv->primary_if->net_dev->dev_addr, ETH_ALEN);
+}
+
 static void set_primary_if(struct bat_priv *bat_priv,
                           struct batman_if *batman_if)
 {
        struct batman_packet *batman_packet;
-       struct vis_packet *vis_packet;
        struct batman_if *old_if;
 
        if (batman_if)
        batman_packet->flags = PRIMARIES_FIRST_HOP;
        batman_packet->ttl = TTL;
 
-       vis_packet = (struct vis_packet *)
-                               bat_priv->my_vis_info->skb_packet->data;
-       memcpy(vis_packet->vis_orig,
-              bat_priv->primary_if->net_dev->dev_addr, ETH_ALEN);
-       memcpy(vis_packet->sender_orig,
-              bat_priv->primary_if->net_dev->dev_addr, ETH_ALEN);
+       update_primary_addr(bat_priv);
 
        /***
         * hacky trick to make sure that we send the HNA information via
 
                bat_priv = netdev_priv(batman_if->soft_iface);
                if (batman_if == bat_priv->primary_if)
-                       set_primary_if(bat_priv, batman_if);
+                       update_primary_addr(bat_priv);
                break;
        default:
                break;