struct net *net = dev_net(net_dev);
        struct net_device *parent_dev;
        struct net *parent_net;
+       int iflink;
        bool ret;
 
        /* check if this is a batman-adv mesh interface */
        if (batadv_softif_is_valid(net_dev))
                return true;
 
+       iflink = dev_get_iflink(net_dev);
+
        /* no more parents..stop recursion */
-       if (dev_get_iflink(net_dev) == 0 ||
-           dev_get_iflink(net_dev) == net_dev->ifindex)
+       if (iflink == 0 || iflink == net_dev->ifindex)
                return false;
 
        parent_net = batadv_getlink_net(net_dev, net);
 
        /* recurse over the parent device */
-       parent_dev = __dev_get_by_index((struct net *)parent_net,
-                                       dev_get_iflink(net_dev));
+       parent_dev = __dev_get_by_index((struct net *)parent_net, iflink);
        /* if we got a NULL parent_dev there is something broken.. */
        if (!parent_dev) {
                pr_err("Cannot find parent device\n");